2014-02-12 97 views
5

我正在使用https://github.com/nicolasff/phpredis扩展来访问redis。我想从php代码中获得redis中的所有密钥。 我尝试下面的代码如何使用php redis获取redis中的所有密钥?

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

但是在外壳下面的命令从PHP脚本给结果

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

我能够设置密钥和数据在下列方式

$redis = new Redis(); 
$redis->connect('127.0.0.1', 6379); 
$redis->set(session_id(), json_encode(array('uname'=>'messi fan'))); 

如何获得KEYS *从redis使用phpredis?

回答

-3

试试这个

$redis->get('key'); 
+0

我需要所有的钥匙。就像KEYS *命令 –

6

没有什么不对您的代码。你正在做的正确:$redis->keys('*')检索所有的关键。

结果:

"kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3" 

是事实,你当你没有设置键:

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

所以session_id()返回值:

kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3 

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

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

这篇文章包含了你提出的解决方案,但它不起作用。 – Ken

+0

谢谢,它为我工作 –