【问题标题】:How get all keys in redis using php redis?如何使用 php redis 获取 redis 中的所有键?
【发布时间】:2014-03-10 06:51:57
【问题描述】:

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

【问题讨论】:

    标签: php redis phpredis


    【解决方案1】:

    您的代码没有任何问题。你做得对:$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 = 新的 Redis(); $redis->connect('xxxxxx', 6379); // 使用 Redis 桌面管理器中的主机 - 连接 $redis->auth('xxxxxx'); // 使用 Redis 桌面管理器中的身份验证 - 连接 $allKeys = $redis->keys('*'); print_r($allKeys); // 这里没有什么

      【讨论】:

      • 该帖子包含您提出的解决方案,但它不起作用。
      【解决方案3】:

      试试这个

       $redis->get('key');
      

      【讨论】:

      • $redis->keys('*');会给你所有的钥匙
      猜你喜欢
      • 2020-02-23
      • 2020-01-01
      • 1970-01-01
      • 2013-10-06
      • 2015-08-24
      • 2013-10-21
      • 2014-04-10
      • 2017-08-13
      • 1970-01-01
      相关资源
      最近更新 更多