说我有,我可以使用存储会话缓存系统:使用缓存系统进行会话存储?
// 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