如何使用php redis获取redis中的所有密钥?

时间:2014-02-12 05:39:53

标签: php redis phpredis

我使用https://github.com/nicolasff/phpredis扩展名来访问redis。我想从php代码获取redis中的所有密钥。 我尝试了以下代码

$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$allKeys = $redis->keys('*');
print_r($allKeys); // nothing here

但是在shell中给出结果的命令

127.0.0.1:6379> KEYS *
"kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3"

我可以从php脚本

以下列方式设置密钥和数据
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->set(session_id(), json_encode(array('uname'=>'messi fan')));

如何使用phpredis从redis获取KEYS *

3 个答案:

答案 0 :(得分:7)

您的代码没有任何问题。您正确地执行了此操作:$redis->keys('*')检索所有密钥。

结果:

"kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3"

实际上是你设置的关键:

 $redis->set(session_id(), json_encode(array('uname'=>'messi fan')));

所以session_id()返回了值:

kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3

因此,这成为您设置的密钥的名称。

答案 1 :(得分:2)

$redis = new Redis();
$redis->connect('xxxxxx', 6379); // use your Host from Redis desktop Manager - connection
$redis->auth('xxxxxx'); // use your Auth from Redis desktop Manager - connection
$allKeys = $redis->keys('*');
print_r($allKeys); // nothing here

答案 2 :(得分:-4)

试试这个

 $redis->get('key');