首頁  >  文章  >  資料庫  >  Redis常用命令解析INFO,MONITOR,SLOWLOG

Redis常用命令解析INFO,MONITOR,SLOWLOG

WBOY
WBOY原創
2016-06-07 16:11:041535瀏覽

作者:zhanhailiang 日期:2014-12-02 1. INFO info指令返回服务器相关信息,包括: server: General information about the Redis server clients: Client connections section memory: Memory consumption related information persistence: RDB and AOF r

  作者:zhanhailiang 日期:2014-12-02

1. INFO

info指令返回服务器相关信息,包括:

  • server: General information about the Redis server
  • clients: Client connections section
  • memory: Memory consumption related information
  • persistence: RDB and AOF related information
  • stats: General statistics
  • replication: Master/slave replication information
  • cpu: CPU consumption statistics
  • commandstats: Redis command statistics
  • cluster: Redis Cluster section
  • keyspace: Database related statistics

    其本身支持定制返回列表:

    [root@~]# redis-cli info
    [root@~]# redis-cli info default
    [root@~]# redis-cli info all

    详情请见:http://www.redis.cn/commands/info.html

    2. MONITOR

    MONITOR是一个调试命令,返回服务器处理的每一个命令,它能帮助我们了解在数据库上发生了什么操作。共有3种操作方法:

    [root@~]# redis-cli monitor
    OK
    1417532512.619715 [0 127.0.0.1:55043] "REPLCONF" "ACK" "6623624"
    [root@~]# telnet 127.0.0.1 6379
    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    monitor
    +OK
    +1417532567.733458 [0 127.0.0.1:55043] "REPLCONF" "ACK" "6623708"
    +1417532568.735936 [0 127.0.0.1:55043] "REPLCONF" "ACK" "6623708"
    quit
    +OK
    Connection closed by foreign host.
    [root@~]# redis-cli 
    127.0.0.1:6379> monitor
    OK
    1417532590.785487 [0 127.0.0.1:55043] "REPLCONF" "ACK" "6623736"

    由于MONITOR命令返回服务器处理的所有的命令, 所以在性能上会有一些消耗。使用官方的压测工具测试结果如下

    在不运行MONITOR命令的情况下,benchmark的测试结果:

    [root@~/software/redis-2.8.17]# src/redis-benchmark -c 10 -n 100000 -q
    PING_INLINE: 51020.41 requests per second
    PING_BULK: 50607.29 requests per second
    SET: 37257.82 requests per second
    GET: 49800.80 requests per second
    INCR: 38699.69 requests per second
    LPUSH: 38910.51 requests per second
    LPOP: 39277.30 requests per second
    SADD: 54614.96 requests per second
    SPOP: 51948.05 requests per second
    LPUSH (needed to benchmark LRANGE): 38819.88 requests per second
    LRANGE_100 (first 100 elements): 20112.63 requests per second
    LRANGE_300 (first 300 elements): 9025.27 requests per second
    LRANGE_500 (first 450 elements): 6836.67 requests per second
    LRANGE_600 (first 600 elements): 5406.28 requests per second
    MSET (10 keys): 19394.88 requests per second

    在运行MONITOR命令的情况下,benchmark的测试结果: (redis-cli monitor > /dev/null):

    [root@~/software/redis-2.8.17]# src/redis-benchmark -c 10 -n 100000 -q
    PING_INLINE: 42211.91 requests per second
    PING_BULK: 42936.88 requests per second
    SET: 26143.79 requests per second
    GET: 33990.48 requests per second
    INCR: 26553.37 requests per second
    LPUSH: 27337.34 requests per second
    LPOP: 27225.70 requests per second
    SADD: 30459.95 requests per second
    SPOP: 39494.47 requests per second
    LPUSH (needed to benchmark LRANGE): 26315.79 requests per second
    LRANGE_100 (first 100 elements): 22055.58 requests per second
    LRANGE_300 (first 300 elements): 8104.38 requests per second
    LRANGE_500 (first 450 elements): 6371.05 requests per second
    LRANGE_600 (first 600 elements): 5031.95 requests per second
    MSET (10 keys): 14861.05 requests per second

    可以看到各项指标基本都有所下降。

    详情请见:http://www.redis.cn/commands/monitor.html

    3. SLOWLOG

    通过SLOWLOG可以读取慢查询日志。

    使用SLOWLOG LEN就可以获取当前慢日志长度。

    [root@~/software/redis-2.8.17]# redis-cli 
    127.0.0.1:6379> slowlog len
    (integer) 28

    使用SLOWLOG GET就可以获取所有慢日志。

    127.0.0.1:6379> slowlog get 
     1) 1) (integer) 27
        2) (integer) 1417531320
        3) (integer) 24623
        4) 1) "info"

    其中,各项指标表示:

    • A unique progressive identifier for every slow log entry.
    • The unix timestamp at which the logged command was processed.
    • The amount of time needed for its execution, in microseconds(注意,microseconds翻译成微秒,而不是毫秒).
    • The array composing the arguments of the command.

      使用SLOWLOG GET N就可以获取最近N条慢日志。

      127.0.0.1:6379> slowlog get 2
      1) 1) (integer) 27
         2) (integer) 1417531320
         3) (integer) 24623
         4) 1) "info"
      2) 1) (integer) 26
         2) (integer) 1417528379
         3) (integer) 21363
         4) 1) "get"
            2) "user:score"

      使用SLOWLOG RESET命令重置慢日志。一旦执行,将丢失以前的所有慢日志。

      127.0.0.1:6379> slowlog reset
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn