2013-01-20 4 views
2

필자는 필요에 따라 둘 이상의 서버에 포트되도록 PHP 시스템을 보유하고 있습니다. 현재 나는 PHP의 (메모리에 있다고 가정하는) 기본 방식으로 사용자의 현재 세션 정보를 저장합니다. MySQL 데이터베이스의 테이블과 구현 예제에 대한 예제를 얻을 수 있습니까?PHP 다중 서버 세션

+0

이 기능을 살펴볼 수있는 아이디어가 있습니까? –

+0

위에서 하이퍼 링크 한 것은 좋은 출발입니다. – halfer

답변

1

기본 세션 저장 시스템은 실제로 파일 시스템에 있습니다. 일부 시스템 캐싱을 사용하여 메모리에서 가져올 수 있습니다.

이제 다중 서버 설정으로 이동하려면 서버가 기본적으로 서로 아무 것도 공유 할 필요가 없습니다. 이러한 목표를 달성하기 위해 세션은 서버 외부에서 세션을 만들고 액세스해야합니다.

데이터베이스에 세션을 저장하는 것이 하나의 옵션이지만 데이터베이스로드가 증가하므로 일부 경우 잠금에주의해야합니다. 기본 세션 처리에는 한 번에 하나의 스레드 만 주어진 세션에 액세스 할 수있는 잠금 기능이 있습니다. 데이터베이스 처리기는이를 수행하지 않을 수 있습니다. 세션 데이터를 읽는 중이라면 문제가되지 않을 수도 있지만 변경하는 경우 문제가 될 수 있습니다.

memcached 확장은 memcached 노드에 대한 세션 데이터 복제를 허용합니다. 나는이 경로를 사용하여 메모리에 세션을 유지하고 여분의 데이터베이스로드 (종종 확장하기가 어렵습니다)를 피할 수 있으므로이 경로를 선호합니다.