【问题标题】:How to List All Redis Databases?如何列出所有 Redis 数据库?
【发布时间】:2012-09-29 22:38:30
【问题描述】:

我运行这个命令来访问我的redis 服务器。

telnet 127.0.0.1 6379

显示所有数据库的命令是什么?

【问题讨论】:

    标签: redis


    【解决方案1】:

    你可以使用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
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 但是redis-cli INFO keyspace也可以达到同样的效果
      • 投反对票,因为这很脆弱,可能会在未来的版本中中断,并且因为有一个内置命令(如前所述)来实现相同的结果。
      【解决方案3】:

      没有命令来执行它(例如,您会使用 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

      【讨论】:

      • 感谢一路介绍Redis协议..
      猜你喜欢
      • 2011-04-17
      • 2013-07-23
      • 2019-03-02
      • 1970-01-01
      • 1970-01-01
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多