2013-12-20 132 views

回答

2

這取決於你如何保存你的會話。
如果將它們保存在密鑰模式sess:<sid>之後,則可以使用keys sess:*獲取所有會話密鑰。你也應該知道keys命令可能會導致性能問題,你應該避免在生產環境中使用它。

編輯
由於Redis的2.8,你可以使用命令scan超過會話密鑰增量迭代。雖然它在phpredis庫中不是最新的。

+0

需要它來控制在線用戶,改變他們的權限等 我添加的php.ini的配置,顯示節能方法的會議。 因此它也將用於生產服務器 – brigantaggior

+1

@brigantaggior [docs](https://github.com/nicolasff/phpredis#php-session-handler)表示會話密鑰前綴「defaults to PHPREDIS_SESSION:」,所以在默認情況下,您可以使用「鍵PHPREDIS_SESSION:*」來檢索所有會話密鑰。或者使用phpredis「$ allKeys = $ redis-> keys('PHPREDIS_SESSION:*');」https://github.com/nicolasff/phpredis#keys-getkeys – adamsmith

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鍵儀表板:

Redis Dashboard

+0

keys命令不建議在生產環境中使用。 –