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