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

标签 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 脚本以下列方式设置 key 和数据:

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

如何使用phpredis从redis获取KEYS *

最佳答案

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

结果:

"kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3"

实际上是您设置的键:

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

所以 session_id() 返回值:

kq92p7b5tf63tmk12v54373e03 hs7ep4lc2m6ci5kk5dosgpelg4 
pt7lfejenqbmmovjpmp9aojuf0 2p05gf20or6r5ee5i7sts90kn1 
cb1d6g3d3bvqetjfmkmaurmpp3

因此这成为您设置的 key 的名称。

关于php - 如何使用php redis获取redis中的所有键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21719590/

相关文章:

Laravel Redis 驱动程序不支持错误

PHPRedis - 时间()不起作用

redis - Redis 在 Windows 上稳定吗?

amazon-web-services - Amazon EC2 到 AWS Elasticache Redis 连接问题

php - Redis如何组合排序集?

php - 将 Paypal Rest API SDK 集成到 laravel 5.2

php - 预测 : Passing value to anonymous transaction function

php - 调用未定义的函数 sqlsrv_connect() - 故障排除

php - 跨度为 float 的内联 block ,依赖于看似无关的代码

php - 使用 URL 将参数传递给函数