是否有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
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3161000