데이터베이스를 시작할 때 데이터베이스에 쓰는 웹 사이트가 있다고 가정합니다. 여러 명의 사용자가 동시에이 웹 사이트에 로그인하면 N = 사용자 수와 같이 N 번 데이터베이스에 쓰려고한다는 뜻입니까? 연결이 끊어지면 (다른 모든 사용자가 현재 웹 사이트에 있지 않은 경우에만 쓰기) PHP가 데이터베이스에 쓰기 만하도록 강제 할 수있는 방법이 있습니까? 데이터베이스에 과도하게 쓰거나 요청할 가능성을 줄이려면 어떤 방법을 제안 하시겠습니까?PHP는 세션을 개별적으로 또는 공유 메모리에 저장합니까?
0
A
답변
0
PHP는 세션 파일을 기본으로 시작합니다. 이 파일은 브라우저 당 첫 번째 session_start();
통화 (사용자)로 생성됩니다. 그런 다음 사용자가 브라우저를 닫을 때까지 동일한 파일이 하위 파일 session_start();
에 사용됩니다. 그러나 세션 파일은 클라이언트가 PHP로 정의 된 수명을 가지기 때문에 브라우저를 닫을 때 서버에서 지워지지 않습니다.
모든 세션이 만료되었는지 (모든 세션이 만료되어 클라이언트가 연결되지 않았는지) 결정하려면 PHP 가비지 수집기가 아직 찾지 못한 세션 파일을 지우고 세션 디렉토리에서 파일에 저장되고 세션 파일이 디렉토리에없는 경우 사이트에 활성 사용자가 없다고 가정 할 수 있습니다.
메모리 내 모듈을 사용하는 경우 (예 : php-redis
) 세션을 저장하는 데 필요한 경로를 파일에서 세션 확인에 사용되는 파일로 변경해야합니다.
서버 구성에 따라 다르지만 PHP의 기본 설정은 데이터베이스가 아닌 하드 드라이브의 파일에 세션을 쓰는 것입니다. – rickdenhaan
'연결이 끊어지면 PHP가 데이터베이스에 기록하도록 강제 할 수있는 방법이 있습니까 (현재 다른 모든 사용자가 현재 웹 사이트에 있지 않은 경우에만 쓰기)? - 나는 거의 의심하지 않습니다. 나중에 삽입해야하는 보류중인 모든 데이터를 서버가 어떻게 추적합니까? 나중에 삽입해야하는 1M 명의 사용자 데이터가 있다고 가정 해 보겠습니다. 내가 아는 한, 데이터 삽입은 즉시 이루어져야합니다. –