我已设置使用 REDIS 作为我的 PHP session 处理程序。 与 REDIS 一起使用时似乎存在 session 过期问题。我对么?或者每个 redis 键的 ttl 生命周期本身处理 session 的到期?
我使用的只是将处理程序设置为使用 REDIS。此外,如果 session 处理程序发生更改,PHP 似乎不会处理垃圾回收。
最佳答案
据我所知,使用 Redis 时不需要 session 垃圾回收。每个 key 都有自己的 TTL,您可以使用 TTL
检查命令。在我的开发环境中,我将 session 处理程序设置为 redis,然后访问我的测试站点。当我运行 KEYS *
,我得到了 session 的 key 。然后我运行 TLL "PHPREDIS_SESSION:<session key>
我得到了收集 session 之前的剩余时间。
您可以使用非常短的 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)
关于php - (php) 我们应该为基于 Redis 的 session 处理使用垃圾收集器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50834451/