세션 저장에 사용할 수있는 캐싱 시스템이 있다고 가정 해보십시오.세션 저장을 위해 캐시 시스템 사용?
// example i have a cache class
$memcached->add('key','value');
// then i can get the session from
$memcached->get('key');
PHP의 기본 제공 세션을 사용하고 있습니까?
세션 저장에 사용할 수있는 캐싱 시스템이 있다고 가정 해보십시오.세션 저장을 위해 캐시 시스템 사용?
// example i have a cache class
$memcached->add('key','value');
// then i can get the session from
$memcached->get('key');
PHP의 기본 제공 세션을 사용하고 있습니까?
session.save_handler
을 mm
으로 설정하여 Apache의 런타임 메모리에 PHP 저장 세션 데이터가 있어야합니다. 그러나 이렇게하려면 메모리 관리 모듈 (--with-mm
)을 사용하여 PHP를 컴파일해야하는데, Windows에서는 사용할 수 없다고 생각합니다.
memcached 또는 다른 캐싱 메커니즘을 사용하려는 경우 session_set_save_handler
을 사용하여 사용자 정의 저장 장치 처리기를 구현하는 것이 가장 좋으므로 세션 관리 코드를 다시 작성할 필요가 없습니다.
이렇게하면 세션 데이터를 저장하는 데 명백한 단점이 있다고 생각하지 않습니다. 분명한 장점은 속도입니다.
편집 : 내가 속도를 제외하고, 설명 this page 건너 온, 주요 장점/즉, 저장 세션 memcached를 사용의 단점 :
먼저 명확하게 설명하고 싶습니다. PHP 세션 저장소를 사용하는 경우 세션은 파일 (일반적으로/tmp)에 저장됩니다. 각 세션은 자신의 파일이됩니다.
memcached 또는 redis를 사용하여 세션을 저장하면 PHP 코드의 내용이 변경되지 않습니다.
대신 php.ini에 세션 저장 핸들러를 통해 구성된 세션을 저장하기 위해 redis 또는 memcache를 사용하도록 PHP를 구성 할 수 있습니다.
장점 :
단점 : 당신이 php.ini 파일을 구성 (또는 자신을 핸들러 저장 세션을 구현) 할 필요가
지금은 memcache 대신 redis를 사용하는 것이 좋습니다. 세션이 영구적으로 유지되므로 서버를 다시 부팅해야하는 경우 모든 사용자가 로그 아웃되지 않습니다.레디 스에 대한
: https://github.com/owlient/phpredis합니다 ("세션 핸들러"페이지 하단)
그래서 우리가 캐시를 사용할 필요가 왜 우리가 세션을 사용할 수 있는지? –
오, 알 겠어, 그 사이의 선택 공유 또는 어? –
@Adam : 필자는 개인적으로 세션 저장을 위해 memcached를 사용하지 않았지만, 최소한의 구성으로 여러 웹 서버에서 세션 데이터를 공유 할 수있는 경우 가끔 세션이 손실되는 것을 용인 할 수 있다면 그것을 사용하는 것이 좋습니다. Redis와 같은 시스템에는 다른 이점이있을 수 있습니다. 도움을 주신 덕분에 –