(php)我们应该使用垃圾收集器进行基于Redis的会话处理吗?

时间:2018-06-13 10:02:59

标签: php redis

我已经设置使用REDIS作为我的PHP会话处理程序。 与REDIS一起使用时似乎存在会话到期问题。我对么?或者每个redis密钥本身的ttl生命周期处理会话的到期时间?

我使用的只是设置处理程序以使用REDIS。此外,如果会话处理程序发生更改,PHP似乎不会处理垃圾回收。

1 个答案:

答案 0 :(得分:0)

据我所知,使用Redis时不需要进行会话垃圾收集。每个密钥都有自己的TTL,您可以使用TTL命令进行检查。在我的开发环境中,我已将会话处理程序设置为redis,然后访问我的测试站点。运行KEYS *时,我得到了会话的密钥。然后,我运行TLL "PHPREDIS_SESSION:<session key>,我得到了收集会话之前的剩余时间。

您可以使用非常短的gc_maxlifetime值自己进行测试。例如15。

127.0.0.1:6379> KEYS *
1) "PHPREDIS_SESSION:otgaqapormlo7l0pjpl6v7upq1"
127.0.0.1:6379> TTL "PHPREDIS_SESSION:otgaqapormlo7l0pjpl6v7upq1"
(integer) 6
127.0.0.1:6379> TTL "PHPREDIS_SESSION:otgaqapormlo7l0pjpl6v7upq1"
(integer) 1
127.0.0.1:6379> TTL "PHPREDIS_SESSION:otgaqapormlo7l0pjpl6v7upq1"
(integer) -2
127.0.0.1:6379> KEYS *
(empty list or set)