7

我正在使用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')));

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

4

3 回答 3

8

您的代码没有任何问题。您做对了:$redis->keys('*')检索所有密钥。

结果:

"kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3"

实际上是您设置时设置的密钥:

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

所以session_id()返回值:

kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3

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

于 2014-02-12T09:28:42.067 回答
3
$redis = 新的 Redis();
$redis->connect('xxxxxx', 6379); // 使用 Redis 桌面管理器中的主机 - 连接
$redis->auth('xxxxxx'); // 使用 Redis 桌面管理器中的身份验证 - 连接
$allKeys = $redis->keys('*');
print_r($allKeys); // 这里没有什么
于 2017-01-26T11:15:44.027 回答
-9

尝试这个

 $redis->get('key');
于 2014-02-12T05:53:33.753 回答