列出所有Redis数据库


192

我运行了此命令以访问我的Redis服务器。

telnet 127.0.0.1 6379

现在,我想显示所有数据库。

请告诉我这个命令。

谢谢。


你什么意思?显示可用的数据库数量?有关二手数据库的信息?...?
Sybille Peters

Answers:


354

没有命令可以执行此操作(例如您可以使用MySQL进行操作)。Redis数据库的数量是固定的,并在配置文件中设置。默认情况下,您有16个数据库。每个数据库都用数字(而不是名称)标识。

您可以使用以下命令来了解数据库的数量:

CONFIG GET databases
1) "databases"
2) "16"

您可以使用以下命令列出定义了某些键的数据库:

INFO keyspace
# Keyspace
db0:keys=10,expires=0
db1:keys=1,expires=0
db3:keys=1,expires=0

请注意,您应该使用“ redis-cli”客户端运行这些命令,而不是telnet。如果要使用telnet,则需要运行使用Redis协议格式化的这些命令。

例如:

*2
$4
INFO
$8
keyspace

$79
# Keyspace
db0:keys=10,expires=0
db1:keys=1,expires=0
db3:keys=1,expires=0

您可以在此处找到有关Redis协议的描述:http : //redis.io/topics/protocol


1
在这里不能工作:INFO keyspace ERR wrong number of arguments for 'info' command
马特

4
您使用的是2.4之前的版本吗?太旧了...尝试发送不带参数的INFO。
Didier Spezia 2014年

redis_version:2.4.14也没有INFO键空间。
hakre

80

或者,您可以只运行以下命令,而无需启动 即可查看Redis实例的所有数据库redis-cli

$ redis-cli INFO | grep ^db
db0:keys=1500,expires=2
db1:keys=200000,expires=1
db2:keys=350003,expires=1

80
但是,通过redis-cli INFO keyspace
Roman Newaza

9
拒绝投票是因为它很脆弱,很可能会在将来的版本中中断,并且因为有内置命令(如上所述)来实现相同的结果。
Madbreaks

@RomanNewaza您的回复实际上应该是被接受的答案。
fbtb

9

您可以使用 redis-cli INFO keyspace

localhost:8000> INFO keyspace
# Keyspace
db0:keys=7,expires=0,avg_ttl=0
db1:keys=1,expires=0,avg_ttl=0
db2:keys=1,expires=0,avg_ttl=0
db11:keys=1,expires=0,avg_ttl=0
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.