26 Oct 2017
Redis
redis命令
- redis支持在配置文件中, 将命令重新命名; 如下例:
//如将FLUSHALL 命名为复杂的名字保证只有自己的应用可以使用该命令
rename-command FLUSHALL oiupyhdggah12uit
//禁止某个命令可以直接设置为空字符串
rename-command FLUSHALL ""
redis通信协议
-
Redis通信协议是Redis客户端和Redis之间交流的语言, 通信协议规定了命令和返回值的格式, Redis支持两种通信协议:
- 二进制安全的统一请求协议(unified request protocol);
//SET foo bar的统一请求协议 *3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\nbar\r\n
- 比较直观的便于在telnet程序中输入的简单协议;
这两种协议只是命令的格式有区别, 命令的返回值的格式是一样的;
redis的管理
redis-cli相关管理命令
查看耗时命令日志
- 每一条命令执行时间超过限制时候, redis就会将命令的执行时间等信息加入耗时命令日志中供开发查看;
- 该限制由配置文件中slowlog-log-slower-than配置项控制(默认是10000微妙 1000 000微妙=1秒);
- 如果设置slowlog-log-slower-than设置为负数, 表示关闭耗时命令日志;
- 耗时命令的日志存储在内存中, 可以通过配置文件中slowlog-max-len配置项来限制记录的条数(默认=128);
- 命令输出格式:
- 日志唯一的ID;
- 命令执行的Unix时间;
- 消耗时间单位微妙;
- 命令以及其参数;
192.168.154.128:6379[1]> slowlog get 1) 1) (integer) 37 2) (integer) 1508832190 3) (integer) 13 4) 1) "zrange" 2) "myzset" 3) "0" 4) "2" 5) "withscores" 5) "192.168.154.128:43254" 6) "" 2) 1) (integer) 35 2) (integer) 1508832165 3) (integer) 4 4) 1) "ZCARD" 2) "myzset" 5) "192.168.154.1:54125" 6) ""
命令监控
redis提供了命令MONITOR命令来监控redis执行的所有命令; 在一个redis-cli输入命令: MONITOR, 然后打开另一个redis-cli执行命令, 查看监控输出:
192.168.154.128:6379[1]> monitor
OK
1508833404.033522 [0 192.168.154.128:43256] "select" "1"
1508833424.665236 [1 192.168.154.128:43256] "set" "foo" "bar1"
1508833430.233119 [1 192.168.154.128:43256] "set" "foo1" "bar2"
注: MONITOR非常的影响redis的性能, 一个客户端使用该命令, 会降低一半的负载能力; 所以该命令只适用于调试和纠错;
cuipf
