說我有,我可以使用存儲會話緩存系統:使用緩存系統進行會話存儲?
// example i have a cache class
$memcached->add('key','value');
// then i can get the session from
$memcached->get('key');
有什麼優點和使用緩存的缺點(如memcached的,也許Redis可以適應,或其他的東西)的會話,而不是使用PHP的內置會話?
說我有,我可以使用存儲會話緩存系統:使用緩存系統進行會話存儲?
// example i have a cache class
$memcached->add('key','value');
// then i can get the session from
$memcached->get('key');
有什麼優點和使用緩存的缺點(如memcached的,也許Redis可以適應,或其他的東西)的會話,而不是使用PHP的內置會話?
通過將session.save_handler
設置爲mm
,您應該能夠在Apache的運行時內存中存儲PHP存儲會話數據。但是,要做到這一點,你需要編譯PHP與內存管理模塊(--with-mm
),我不認爲它適用於Windows。
如果您想使用memcached或其他緩存機制,那麼最好使用session_set_save_handler
來實現用戶定義的存儲處理程序,因此您不必重寫會話管理代碼。
如果你這樣做,那麼我認爲以這種方式存儲會話數據沒有任何明顯的缺點。顯而易見的優勢是速度。
編輯: 我碰到this page其中討論,除了速度來,主要優點/使用memcached的存儲會話,即缺點:
我想先澄清一下。當你使用PHP會話存儲時,會話被存儲在一個文件中(通常在/ tmp中)。每個會話都成爲它自己的文件。
當您使用memcached或redis存儲會話時,您的PHP代碼中沒有任何更改。
您可以簡單地配置php以使用redis或memcache來存儲會話(通過php.ini中的會話保存處理程序進行配置)。
優點:
缺點:
現在,我會a通常建議使用redis而不是memcache,因爲會話將變爲永久性的,所以如果您需要重新啓動服務器,所有用戶都不會註銷。
對於Redis的: https://github.com/owlient/phpredis(請參閱「會話處理程序」在網頁的下方)
那麼,如果我們爲什麼需要使用高速緩存,我們可以使用會話? – 2011-02-06 09:04:37