列出所有Redis数据库

Kev*_*ith 175 redis

我运行此命令来访问我的redis服务器.

telnet 127.0.0.1 6379
Run Code Online (Sandbox Code Playgroud)

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

请告诉我这个命令.

谢谢.

Did*_*zia 307

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

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

CONFIG GET databases
1) "databases"
2) "16"
Run Code Online (Sandbox Code Playgroud)

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

INFO keyspace
# Keyspace
db0:keys=10,expires=0
db1:keys=1,expires=0
db3:keys=1,expires=0
Run Code Online (Sandbox Code Playgroud)

请注意,您应该使用"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
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到Redis协议的说明:http: //redis.io/topics/protocol

  • `CONFIG GET` 对我不起作用,但 `INFO keyspace` 可以 (6认同)
  • 感谢您一路介绍 Redis 协议。 (5认同)
  • 您使用的是2.4之前的版本吗?太旧了...尝试在没有参数的情况下发送INFO. (4认同)

rap*_*olt 76

或者您可以运行以下命令,您将看到Redis实例的所有数据库而不会启动 redis-cli:

$ redis-cli INFO | grep ^db
db0:keys=1500,expires=2
db1:keys=200000,expires=1
db2:keys=350003,expires=1
Run Code Online (Sandbox Code Playgroud)

  • 但是使用`redis-cli INFO keypace`可以实现同样的目的 (72认同)
  • Downvoting因为它很脆弱,很可能在将来的版本中破坏,并且因为有一个内置命令(如上所述)来实现相同的结果. (8认同)

mac*_*cno 25

您可以使用 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
Run Code Online (Sandbox Code Playgroud)