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

10

我正在使用 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 *


你找到了使用phpredis获取所有键的方法吗? - chithra
3个回答

9

你的代码没有问题。你已经正确操作了:$redis->keys('*')会检索所有键。

结果:

"kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3"

实际上,这是您进行以下操作时设置的密钥:
 $redis->set(session_id(), json_encode(array('uname'=>'messi fan')));

所以 session_id() 返回了这个值:

kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3

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

4
$redis = new Redis();
$redis->connect('xxxxxx', 6379); // 使用Redis桌面管理器中的主机连接
$redis->auth('xxxxxx'); // 使用Redis桌面管理器中的密码连接
$allKeys = $redis->keys('*');
print_r($allKeys); // 这里没有任何内容

注:这段代码是使用PHP语言操作Redis数据库,其中包含连接到Redis服务器、验证密码和获取所有键的操作。

3
这篇帖子包括了你提出的解决方案,但它们没有起作用。 - Ken

-8

试一下

 $redis->get('key');

1
$redis->keys('*'); 将获取所有键。 - Joel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接