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

点点圈 提交于 2020-02-27 13:54:52

是否有Redis命令用于获取数据库中的所有密钥? 我已经看到一些python-redis库正在获取它们。 但是我想知道从redis-client是否有可能。


#1楼

已针对Redis 2.8及更高版本进行更新

正如该问题先前答案的注释中所述, KEYS是潜在的危险命令,因为您的Redis服务器在提供服务时将无法进行其他操作。 KEYS另一个风险是,它可能会消耗大量RAM(取决于密钥空间的大小)来准备响应缓冲区,从而可能耗尽服务器的内存。

Redis的2.8版引入了SCAN系列命令,这些命令礼貌得多,可以用于相同的目的。

CLI还提供了一种很好的使用方式:

$ redis-cli --scan --pattern '*'

#2楼

看看下面的Redis备忘单 。 要使用redis-cli获取redis密钥的子集,请使用以下命令

KEYS "prefix:*"

#3楼

使用redis-cli,您可能会连接到远程redis-server,然后执行以下命令:

KEYS *

没有显示任何东西,或者更好,它显示:
(empty list or set)

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

如Redis文档中所述,新连接默认连接到db 0

在我的情况下,由于我的数据库为1,因此KEYS命令未检索结果。要选择所需的数据库,请使用SELECT
db由整数标识。

SELECT 1
KEYS *

我发布此信息是因为先前的答案都无法解决我的问题。


#4楼

是的,您可以使用此命令获取所有密钥

var redis = require('redis');
redisClient = redis.createClient(redis.port, redis.host);    
  redisClient.keys('*example*', function (err, keys) {
})

#5楼

->从redis-cli获取所有密钥

-redis 127.0.0.1:6379> keys *

->获取模式列表

-redis 127.0.0.1:6379> keys d??

这将产生以三个字符开头的以“ d”开头的键。

-redis 127.0.0.1:6379> keys *t*

这将获得键中匹配“ t”字符的键

->从命令行按键计数

-redis-cli keys * |wc -l

->或者您可以使用dbsize

-redis-cli dbsize
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!