Info 指令显示的信息分为9大块:
1. Server 服务器运行的环境参数;
2. Clients 客户端相关信息;
3. Memory 服务器运行内存统计数据;
4. Persistence 持久化信息;
5. Stats 通用统计数据;
6. CPU 使用情况
7. Replication 主从复制相关信息;
8. Cluster集群信息;
9. KeySpace 键值对统计数量信息。
一下挑选一些关键性的、非常实用的参数进行讲解
Redis 每秒执行指令数?
ops_per_sec:operations per second,每秒操作数。
以上表示ops 是 789,也就是所有客户端每秒发送 789 条指令到服务器执行。极限情况下,Redis 可以每秒执行 10W 此指令,CPU几乎完全榨干。如果 ops 过高,可以考虑通过 monitor 指令快速观察一下究竟是哪些key 访问比较频繁,从而在相应的业务上进行优化,以减少 I/O 次数。
Redis 连接了多少客户端?
通过观察这个数量可以确定是否存在意料之外的连接。如果发现数量不对劲,可以使用 client list 指令列出所有的客户端链接地址来确定源头。
还有一个重要的参数 rejected_connections,它表示因为超出最大连接数限制而被拒绝的客户端连接次数,如果这个数字很大,意味着服务器的最大连接数设置的过低需要调整 maxclients 参数。
Redis 内存占用多大?
命令 info memory 看到
复制积压缓冲区多大?
可以通过 info replication 看到。
复制积压缓冲区大小非常重要,它严重影响到主从复制的效率。当从库因为网络原因临时断开了主库的复制,然后网络恢复了,又重新连上了,这段断开的时间内发生在 master 上的修改操作指令都会放在积压缓冲区中,这样从库可以通过积压缓冲区恢复中断的主从同步过程。
积压缓冲区是环形的,后来的指令会覆盖掉前面的内容。如果从库断开的时间过长,或者缓冲区的大小设置的太小,都会导致从库无法快速恢复中断的主从同步过程,因为中间的修改指令被覆盖掉了。这时候从库就会进行全量同步模式,非常耗费 CPU 和网络资源。
如果有多个从库复制,积压缓冲区是共享的,它不会因为从库过多而线性增长。如果实例的修改指令请求很频繁,那就把积压缓冲区调大一些,几十 MB 差不多了,如果闲就设置为几个MB。
通过查看 sync_partial_err 变量的次数来决定是否需要扩大积压缓冲区,它表示主从半同步复制失败的次数。