欢迎大家加入 459479177QQ群进行交流

    

  本章介绍Redis sever

1、sync,类似MySQL的replication

127.0.0.1:6379> syncEntering slave output mode...  (press Ctrl-C to quit)SYNC with master, discarding 601 bytes of bulk transfer...SYNC done. Logging commands from master."PING""PING"

2、slowlog,管理redis慢日志

\\查看日志信息:redis 127.0.0.1:6379> slowlog get 21) 1) (integer) 14   2) (integer) 1309448221   3) (integer) 15   4) 1) "ping"2) 1) (integer) 13   2) (integer) 1309448128   3) (integer) 30   4) 1) "slowlog"      2) "get"      3) "100"            \\查看当前日志的数量:redis 127.0.0.1:6379> SLOWLOG LEN(integer) 14\\使用命令 SLOWLOG RESET 可以清空 slow logredis 127.0.0.1:6379> SLOWLOG LEN(integer) 14 redis 127.0.0.1:6379> SLOWLOG RESETOK redis 127.0.0.1:6379> SLOWLOG LEN(integer) 0

3、slaveof把当前指定服务器转向指定另外的服务器

127.0.0.1:6379> slaveof 127.0.0.1 6379OK127.0.0.1:6379> slaveof no one        \\『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。OK

4、shutdown异步保持数据并关闭服务

127.0.0.1:6379> pingPONG127.0.0.1:6379> shutdownnot connected> pingCould not connect to Redis at 127.0.0.1:6379: Connection refusednot connected>

5、save异步保持数据

127.0.0.1:6379> saveOK

6、role查看当前角色

127.0.0.1:6379> role1) "master"2) (integer) 03) (empty list or set)

7、monitor实事打印当前服务的接受,调用等命令

\\开启monitor命令127.0.0.1:6379> monitor OK\\打开新的session执行命令127.0.0.1:6379> get name"jeery"127.0.0.1:6379> multiOK127.0.0.1:6379> set name tom QUEUED127.0.0.1:6379> set name sunshineQUEUED127.0.0.1:6379> exec1) OK2) OK127.0.0.1:6379> get name"sunshine"\\在开启monitor信息返回127.0.0.1:6379> monitor OK1475137582.021887 [0 127.0.0.1:52468] "multi"1475137597.151760 [0 127.0.0.1:52468] "set" "name" "tom"1475137597.151792 [0 127.0.0.1:52468] "set" "name" "sunshine"1475137597.151800 [0 127.0.0.1:52468] "exec"1475137602.628792 [0 127.0.0.1:52468] "get" "name"

8、lastslsave最后一数据的保存时间,以unix时间格式

127.0.0.1:6379> lastsave(integer) 1475138167

9、info获取redis服务器的各种信息

127.0.0.1:6379> infoserver : 一般 Redis 服务器信息,包含以下域:redis_version : Redis 服务器版本redis_git_sha1 : Git SHA1redis_git_dirty : Git dirty flagos : Redis 服务器的宿主操作系统arch_bits : 架构(32 或 64 位)multiplexing_api : Redis 所使用的事件处理机制gcc_version : 编译 Redis 时所使用的 GCC 版本process_id : 服务器进程的 PIDrun_id : Redis 服务器的随机标识符(用于 Sentinel 和集群)tcp_port : TCP/IP 监听端口uptime_in_seconds : 自 Redis 服务器启动以来,经过的秒数uptime_in_days : 自 Redis 服务器启动以来,经过的天数lru_clock : 以分钟为单位进行自增的时钟,用于 LRU 管理clients : 已连接客户端信息,包含以下域:connected_clients : 已连接客户端的数量(不包括通过从属服务器连接的客户端)client_longest_output_list : 当前连接的客户端当中,最长的输出列表client_longest_input_buf : 当前连接的客户端当中,最大输入缓存blocked_clients : 正在等待阻塞命令(BLPOP、BRPOP、BRPOPLPUSH)的客户端的数量memory : 内存信息,包含以下域:在理想情况下, used_memory_rss 的值应该只比 used_memory 稍微高一点儿。当 rss > used ,且两者的值相差较大时,表示存在(内部或外部的)内存碎片。内存碎片的比率可以通过 mem_fragmentation_ratio 的值看出。当 used > rss 时,表示 Redis 的部分内存被操作系统换出到交换空间了,在这种情况下,操作可能会产生明显的延迟。当 Redis 释放内存时,分配器可能会,也可能不会,将内存返还给操作系统。如果 Redis 释放了内存,却没有将内存返还给操作系统,那么 used_memory 的值可能和操作系统显示的 Redis 内存占用并不一致。查看 used_memory_peak 的值可以验证这种情况是否发生。used_memory : 由 Redis 分配器分配的内存总量,以字节(byte)为单位used_memory_human : 以人类可读的格式返回 Redis 分配的内存总量used_memory_rss : 从操作系统的角度,返回 Redis 已分配的内存总量(俗称常驻集大小)。这个值和 top 、 ps 等命令的输出一致。used_memory_peak : Redis 的内存消耗峰值(以字节为单位)used_memory_peak_human : 以人类可读的格式返回 Redis 的内存消耗峰值used_memory_lua : Lua 引擎所使用的内存大小(以字节为单位)mem_fragmentation_ratio : used_memory_rss 和 used_memory 之间的比率mem_allocator : 在编译时指定的, Redis 所使用的内存分配器。可以是 libc 、 jemalloc 或者 tcmalloc 。persistence : RDB 和 AOF 的相关信息stats : 一般统计信息replication : 主/从复制信息cpu : CPU 计算量统计信息commandstats : Redis 命令统计信息cluster : Redis 集群信息keyspace : 数据库相关的统计信息

10、flushdb清楚当前库的所有key

127.0.0.1:6379> keys *1) "pfkey"2) "pfkey5"3) "pfkey4"4) "pfkey3"5) "pfkey2"6) "name"7) "pfkey1"127.0.0.1:6379> flushdbOK127.0.0.1:6379> keys *(empty list or set)

11、flushall清除所有库的所有key

127.0.0.1:6379> flushallOK

12、debug sgefault让redis崩溃用作deng调试

127.0.0.1:6379> debug segfaultCould not connect to Redis at 127.0.0.1:6379: Connection refused(1.12s)

13、debug object获取key的调试信息

127.0.0.1:6379> debug object nameValue at:0x7f5f7b8135e0 refcount:1 encoding:embstr serializedlength:9 lru:15530812 lru_seconds_idle:6

14、dbsize获取当前库的key数量

127.0.0.1:6379> dbsize(integer) 2127.0.0.1:6379> keys *1) "name"2) "age"

15、config resetstat重启info信息

127.0.0.1:6379> config resetstatOK127.0.0.1:6379>

16、config set设定配置参数无需重启redis

127.0.0.1:6379> config get slowlog-max-len1) "slowlog-max-len"2) "128"127.0.0.1:6379> config set slowlog-max-len 256OK127.0.0.1:6379> config get slowlog-max-len1) "slowlog-max-len"2) "256"

17、config rewrite对redis.conf进行改写

127.0.0.1:6379> config get slowlog-max-len1) "slowlog-max-len"2) "128"127.0.0.1:6379> config set slowlog-max-len 256OK127.0.0.1:6379> config get slowlog-max-len1) "slowlog-max-len"2) "256"127.0.0.1:6379> config rewriteOK

18、config get获取指定参数的配置值

127.0.0.1:6379> config get slowlog-max-len1) "slowlog-max-len"2) "256"

19、command info获取redis命令的描述数组

127.0.0.1:6379> command info zadd1) 1) "zadd"   2) (integer) -4   3) 1) write      2) denyoom      3) fast   4) (integer) 1   5) (integer) 1   6) (integer) 1127.0.0.1:6379> command info sadd1) 1) "sadd"   2) (integer) -3   3) 1) write      2) denyoom      3) fast   4) (integer) 1   5) (integer) 1   6) (integer) 1127.0.0.1:6379> command info info1) 1) "info"   2) (integer) -1   3) 1) readonly      2) loading      3) stale   4) (integer) 0   5) (integer) 0   6) (integer) 0

20、time返回当前服务器时间,以Unix时间戳

127.0.0.1:6379> time1) "1475149289"2) "806040"

21、command getkeys 获取给定所有的键

127.0.0.1:6379> COMMAND GETKEYS mset name tom age 201) "name"2) "age"

22、command count获取redis有多少命令

127.0.0.1:6379> command count(integer) 163

23、command获取所有命令详细数组

127.0.0.1:6379> command 1) 1) "pfcount"     2) (integer) -2     3) 1) write     4) (integer) 1     5) (integer) 1     6) (integer) 1...            \\省略163) 1) "zincrby"     2) (integer) 4     3) 1) write        2) denyoom        3) fast     4) (integer) 1     5) (integer) 1     6) (integer) 1

24、cluster slots获取集群节点的映射数组

redis 127.0.0.1:6379> cluster slots1) 1) (integer) 0   2) (integer) 4095   3) 1) "127.0.0.1"      2) (integer) 7000   4) 1) "127.0.0.1"      2) (integer) 70042) 1) (integer) 12288   2) (integer) 16383   3) 1) "127.0.0.1"      2) (integer) 7003   4) 1) "127.0.0.1"      2) (integer) 70073) 1) (integer) 4096   2) (integer) 8191   3) 1) "127.0.0.1"      2) (integer) 7001   4) 1) "127.0.0.1"      2) (integer) 70054) 1) (integer) 8192   2) (integer) 12287   3) 1) "127.0.0.1"      2) (integer) 7002   4) 1) "127.0.0.1"      2) (integer) 7006

25、client setname设置当前连接名称

# 新连接默认没有名字 redis 127.0.0.1:6379> CLIENT GETNAME(nil) # 设置名字 redis 127.0.0.1:6379> CLIENT SETNAME hello-world-connectionOK # 返回名字 redis 127.0.0.1:6379> CLIENT GETNAME"hello-world-connection" # 在客户端列表中查看 redis 127.0.0.1:6379> CLIENT LISTaddr=127.0.0.1:36851fd=5name=hello-world-connection     # <- 名字age=51...# 清除名字redis 127.0.0.1:6379> CLIENT SETNAME        # 只用空格是不行的!(error) ERR Syntax error, try CLIENT (LIST | KILL ip:port) redis 127.0.0.1:6379> CLIENT SETNAME ""     # 必须双引号显示包围OK redis 127.0.0.1:6379> CLIENT GETNAME        # 清除完毕

26、client getname获取当前连接名称

# 新连接默认没有名字 redis 127.0.0.1:6379> CLIENT GETNAME(nil) # 设置名字 redis 127.0.0.1:6379> CLIENT SETNAME hello-world-connectionOK # 返回名字 redis 127.0.0.1:6379> CLIENT GETNAME"hello-world-connection"

27、client list获取连接到服务器的客户端信息

127.0.0.1:6379> client listid=2 addr=127.0.0.1:52472 fd=6 name= age=1390 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=clientaddr : 客户端的地址和端口fd : 套接字所使用的文件描述符age : 以秒计算的已连接时长idle : 以秒计算的空闲时长flags : 客户端 flagdb : 该客户端正在使用的数据库 IDsub : 已订阅频道的数量psub : 已订阅模式的数量multi : 在事务中被执行的命令数量qbuf : 查询缓冲区的长度(字节为单位, 0 表示没有分配查询缓冲区)qbuf-free : 查询缓冲区剩余空间的长度(字节为单位, 0 表示没有剩余空间)obl : 输出缓冲区的长度(字节为单位, 0 表示没有分配输出缓冲区)oll : 输出列表包含的对象数量(当输出缓冲区没有剩余空间时,命令回复会以字符串对象的形式被入队到这个队列里)omem : 输出缓冲区和输出列表占用的内存总量events : 文件描述符事件cmd : 最近一次执行的命令客户端 flag 可以由以下部分组成:O : 客户端是 MONITOR 模式下的附属节点(slave)S : 客户端是一般模式下(normal)的附属节点M : 客户端是主节点(master)x : 客户端正在执行事务b : 客户端正在等待阻塞事件i : 客户端正在等待 VM I/O 操作(已废弃)d : 一个受监视(watched)的键已被修改, EXEC 命令将失败c : 在将回复完整地写出之后,关闭链接u : 客户端未被阻塞(unblocked)A : 尽可能快地关闭连接N : 未设置任何 flag文件描述符事件可以是:r : 客户端套接字(在事件 loop 中)是可读的(readable)w : 客户端套接字(在事件 loop 中)是可写的(writeable)

28、client kill关闭客户端命令

id=2 addr=127.0.0.1:52472 fd=6 name= age=1390 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client127.0.0.1:6379> client kill 127.0.0.1:52472OK\\仔细发下下面的端口变成了52473,说明client被关闭,而且又重新连接了服务器127.0.0.1:6379> client listid=3 addr=127.0.0.1:52473 fd=6 name= age=19 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

29、bgsave在后台异步保存数据到磁盘上去

127.0.0.1:6379> BGSAVEBackground saving started

30、bgrewriteaof异步执行一个aof重写操作

127.0.0.1:6379> bgrewriteaofBackground append only file rewriting started

至此redis server命令就介绍完毕啦~下一章节我们介绍redis的主从集群等相关!

欢迎大家加入 459479177QQ群进行交流