欢迎大家加入 459479177QQ群进行交流
本章介绍Redis sever
1、sync,类似MySQL的replication
127.0.0.1:6379> sync Entering 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 2 1) 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 log redis 127.0.0.1:6379> SLOWLOG LEN (integer) 14 redis 127.0.0.1:6379> SLOWLOG RESET OK redis 127.0.0.1:6379> SLOWLOG LEN (integer) 0
3、slaveof把当前指定服务器转向指定另外的服务器
127.0.0.1:6379> slaveof 127.0.0.1 6379 OK 127.0.0.1:6379> slaveof no one \\『 SLAVEOF NO ONE 不会丢弃同步所得数据集』这个特性,可以在主服务器失败的时候,将从属服务器用作新的主服务器,从而实现无间断运行。 OK
4、shutdown异步保持数据并关闭服务
127.0.0.1:6379> ping PONG 127.0.0.1:6379> shutdown not connected> ping Could not connect to Redis at 127.0.0.1:6379: Connection refused not connected>
5、save异步保持数据
127.0.0.1:6379> save OK
6、role查看当前角色
127.0.0.1:6379> role 1) "master" 2) (integer) 0 3) (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> multi OK 127.0.0.1:6379> set name tom QUEUED 127.0.0.1:6379> set name sunshine QUEUED 127.0.0.1:6379> exec 1) OK 2) OK 127.0.0.1:6379> get name "sunshine" \\在开启monitor信息返回 127.0.0.1:6379> monitor OK 1475137582.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> info server : 一般 Redis 服务器信息,包含以下域: redis_version : Redis 服务器版本 redis_git_sha1 : Git SHA1 redis_git_dirty : Git dirty flag os : Redis 服务器的宿主操作系统 arch_bits : 架构(32 或 64 位) multiplexing_api : Redis 所使用的事件处理机制 gcc_version : 编译 Redis 时所使用的 GCC 版本 process_id : 服务器进程的 PID run_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> flushdb OK 127.0.0.1:6379> keys * (empty list or set)
11、flushall清除所有库的所有key
127.0.0.1:6379> flushall OK
12、debug sgefault让redis崩溃用作deng调试
127.0.0.1:6379> debug segfault Could 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 name Value at:0x7f5f7b8135e0 refcount:1 encoding:embstr serializedlength:9 lru:15530812 lru_seconds_idle:6
14、dbsize获取当前库的key数量
127.0.0.1:6379> dbsize (integer) 2 127.0.0.1:6379> keys * 1) "name" 2) "age"
15、config resetstat重启info信息
127.0.0.1:6379> config resetstat OK 127.0.0.1:6379>
16、config set设定配置参数无需重启redis
127.0.0.1:6379> config get slowlog-max-len 1) "slowlog-max-len" 2) "128" 127.0.0.1:6379> config set slowlog-max-len 256 OK 127.0.0.1:6379> config get slowlog-max-len 1) "slowlog-max-len" 2) "256"
17、config rewrite对redis.conf进行改写
127.0.0.1:6379> config get slowlog-max-len 1) "slowlog-max-len" 2) "128" 127.0.0.1:6379> config set slowlog-max-len 256 OK 127.0.0.1:6379> config get slowlog-max-len 1) "slowlog-max-len" 2) "256" 127.0.0.1:6379> config rewrite OK
18、config get获取指定参数的配置值
127.0.0.1:6379> config get slowlog-max-len 1) "slowlog-max-len" 2) "256"
19、command info获取redis命令的描述数组
127.0.0.1:6379> command info zadd 1) 1) "zadd" 2) (integer) -4 3) 1) write 2) denyoom 3) fast 4) (integer) 1 5) (integer) 1 6) (integer) 1 127.0.0.1:6379> command info sadd 1) 1) "sadd" 2) (integer) -3 3) 1) write 2) denyoom 3) fast 4) (integer) 1 5) (integer) 1 6) (integer) 1 127.0.0.1:6379> command info info 1) 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> time 1) "1475149289" 2) "806040"
21、command getkeys 获取给定所有的键
127.0.0.1:6379> COMMAND GETKEYS mset name tom age 20 1) "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 slots 1) 1) (integer) 0 2) (integer) 4095 3) 1) "127.0.0.1" 2) (integer) 7000 4) 1) "127.0.0.1" 2) (integer) 7004 2) 1) (integer) 12288 2) (integer) 16383 3) 1) "127.0.0.1" 2) (integer) 7003 4) 1) "127.0.0.1" 2) (integer) 7007 3) 1) (integer) 4096 2) (integer) 8191 3) 1) "127.0.0.1" 2) (integer) 7001 4) 1) "127.0.0.1" 2) (integer) 7005 4) 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-connection OK # 返回名字 redis 127.0.0.1:6379> CLIENT GETNAME "hello-world-connection" # 在客户端列表中查看 redis 127.0.0.1:6379> CLIENT LIST addr=127.0.0.1:36851 fd=5 name=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-connection OK # 返回名字 redis 127.0.0.1:6379> CLIENT GETNAME "hello-world-connection"
27、client list获取连接到服务器的客户端信息
127.0.0.1:6379> client list 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=client addr : 客户端的地址和端口 fd : 套接字所使用的文件描述符 age : 以秒计算的已连接时长 idle : 以秒计算的空闲时长 flags : 客户端 flag db : 该客户端正在使用的数据库 ID sub : 已订阅频道的数量 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=client 127.0.0.1:6379> client kill 127.0.0.1:52472 OK \\仔细发下下面的端口变成了52473,说明client被关闭,而且又重新连接了服务器 127.0.0.1:6379> client list id=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> BGSAVE Background saving started
30、bgrewriteaof异步执行一个aof重写操作
127.0.0.1:6379> bgrewriteaof Background append only file rewriting started
至此redis server命令就介绍完毕啦~下一章节我们介绍redis的主从集群等相关!
欢迎大家加入 459479177QQ群进行交流