我的会话存储在Redis服务器https://github.com/nicolasff/phpredis
中如何从服务器获取所有会话列表?
当我使用文件系统时非常容易:
preg_grep("/^sess_/", scandir(ini_get("session.save_path")))
的php.ini:
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"
答案 0 :(得分:2)
这取决于您保存会话的方式
如果在关键模式sess:<sid>
之后保存它们,则可以使用keys sess:*
获取所有会话密钥。此外,您应该知道keys
命令可能会导致性能问题,您应该避免在生产环境中使用它。
修改强>
从Redis 2.8开始,您可以使用命令scan
逐步迭代会话密钥。虽然它在phpredis lib中不是最新的。
答案 1 :(得分:1)
如果您只想要会话密钥的计数,可以使用带有Lua函数的EVAL方法。
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$count = $redis->eval('return table.getn(redis.call("keys", "PHPREDIS_SESSION:*"))');
如果您需要更多详细信息,我会解释Redis Sessions in PHP with Kohana。这是我们用于管理Redis密钥的仪表板: