看看下面的内容 Redis作弊表 。 要使用redis-cli获取redis密钥的子集,请使用该命令
KEYS "prefix:*"
是的,您可以使用此功能获取所有密钥
var redis = require('redis'); redisClient = redis.createClient(redis.port, redis.host); redisClient.keys('*example*', function (err, keys) { })
redis-cli -h <host> -p <port> keys *
其中*是列出所有键的模式
试着看看 KEYS 命令。 KEYS * 将列出存储在redis中的所有密钥。
KEYS
KEYS *
的 编辑: 强> 请注意顶部的警告 KEYS 文档页面:
的 时间复杂度: 强> O(N),其中N是数据库中的密钥数,假设数据库中的密钥名称和给定模式的长度有限。
的 更新(V2.8或更高版本): 强> SCAN 是一个更好的替代品 KEYS 从某种意义上说它不会阻塞服务器,也不会消耗大量资源。更喜欢使用它。
SCAN
可能会发生使用redis-cli,连接到远程redis-server,然后命令:
没有显示任何内容,或更好,它显示: (empty list or set)
(empty list or set)
如果您完全确定您使用的Redis服务器是您拥有数据的服务器,则可能您的redis-cli未连接到Redis正确的数据库实例。
正如Redis文档中提到的那样,新连接默认连接到 的 db 0 强> 。
就我而言 KEYS 命令未检索结果,因为我的数据库是1.为了选择所需的数据库,请使用 选择 。 db由整数标识。
SELECT 1 KEYS *
我发布此信息是因为以前的答案都没有解决我的问题。
为了获得redis服务器中的所有密钥,您应该打开redis-cli并输入: KEYS * 要获得更多帮助,请访问此页面: 这个链接
SCAN不要求客户端像KEYS那样将所有密钥加载到内存中。 SCAN为您提供了一个可以使用的迭代器。我的redis中有一条1B记录,我永远无法获得足够的内存来立即返回所有密钥。
这是一个python片段,用于从商店获取与模式匹配的所有键并删除它们:
import redis r = redis.StrictRedis(host='localhost', port=6379, db=0) for key in r.scan_iter("key_pattern*"): print key