Redis命令获取所有可用密钥?


冷月如霜·胡狼
2025-04-08 02:31:05 (17小时前)
  1. 有没有


Redis的
</跨度>
获取数据库中所有键的命令?我见过一些python-

Redis的
</跨度>
图书馆提取它们。但是想知道是否有可能

Redis的
</跨度>
-客户。

8 条回复
  1. 0# NetworkAttachedStorage | 2019-08-31 10-32



    看看下面的内容

    Redis作弊表


    要使用redis-cli获取redis密钥的子集,请使用该命令




    1. KEYS prefix:*”

    2. </code>

  2. 1# 蜡笔小辛 | 2019-08-31 10-32



    是的,您可以使用此功能获取所有密钥




    1. var redis = require(‘redis’);
      redisClient = redis.createClient(redis.port, redis.host);
      redisClient.keys(‘example‘, function (err, keys) {
      })

    2. </code>

  3. 2# 林老爷的日常 | 2019-08-31 10-32




    1. redis-cli -h -p keys *

    2. </code>


    其中*是列出所有键的模式


  4. 3# 布偶的表弟派大星丶 | 2019-08-31 10-32



    试着看看


    KEYS


    命令。

    KEYS *

    将列出存储在redis中的所有密钥。




    编辑:
    </强>
    请注意顶部的警告

    KEYS

    文档页面:





    时间复杂度:
    </强>
    O(N),其中N是数据库中的密钥数,假设数据库中的密钥名称和给定模式的长度有限。





    更新(V2.8或更高版本):
    </强>


    SCAN


    是一个更好的替代品

    KEYS

    从某种意义上说它不会阻塞服务器,也不会消耗大量资源。更喜欢使用它。


  5. 4# 甲基蓝 | 2019-08-31 10-32



    可能会发生使用redis-cli,连接到远程redis-server,然后命令:




    1. KEYS *

    2. </code>


    没有显示任何内容,或更好,它显示:



    (empty list or set)



    如果您完全确定您使用的Redis服务器是您拥有数据的服务器,则可能您的redis-cli未连接到Redis正确的数据库实例。



    正如Redis文档中提到的那样,新连接默认连接到

    db 0
    </强>



    就我而言

    KEYS

    命令未检索结果,因为我的数据库是1.为了选择所需的数据库,请使用

    选择



    db由整数标识。




    1. SELECT 1
      KEYS *

    2. </code>


    我发布此信息是因为以前的答案都没有解决我的问题。


  6. 5# 早岁那知世事艰 | 2019-08-31 10-32



    为了获得redis服务器中的所有密钥,您应该打开redis-cli并输入:

    1. <code>
    2. KEYS *
    3. </code>

    要获得更多帮助,请访问此页面:

    1. <a href="https://redis.io/commands#generic" rel="nofollow noreferrer">
    2. 这个链接
    3. </A>


  7. 6# 薄情 | 2019-08-31 10-32



    SCAN不要求客户端像KEYS那样将所有密钥加载到内存中。 SCAN为您提供了一个可以使用的迭代器。我的redis中有一条1B记录,我永远无法获得足够的内存来立即返回所有密钥。



    这是一个python片段,用于从商店获取与模式匹配的所有键并删除它们:




    1. import redis
      r = redis.StrictRedis(host=’localhost’, port=6379, db=0)
      for key in r.scan_iter(“key_pattern*”):
      print key

    2. </code>

登录 后才能参与评论