Redis监控与性能调优
一、Redis监控
1. Redis状态信息命令info
A. info stats
keyspace_hits:key命中次数,指当使用命令向redis中查询某个key的数据时,redis数据存在时就返回并keyspace_hits加1;
keyspace_misses:key未命中次数,指当使用命令向redis中查询某个key的数据时,redis数据不存在时就返回null并keyspace_misses加1,理论上减少keyspace_misses就可以提高命中率,应用的响应性能和并发性能就越好;
二、Redis慢查询
1. Redis单线程命令的处理机制是客户端向Redis服务器发送命令、命令在请求队列中排队等待处理、服务端执行命令、返回命令结果;
2. Redis慢查询是指服务端在命令执行前后计算每条命令的执行时间,当超过预设阈值时,就记录一条日志,但该时间不包括命令在队列中等待和网络传输的时间;
3. 其他命令
A. slowlog-max-len:设置慢查询日志最多能保存多少条日志,默认值128,支持redis.conf里参数配置或者config set slowlog-max-len 128设置,查询用config get命令,注slowlog本身是一个内存中的FIFO队列,当队列大小超过设定长度时,最旧的日志将被依次删除用来放置新的日志,可以考虑定期将慢日志转存到MySQL或ES中;
B. slowlog-log-slower-than:指要对执行时间大于多少微妙的查询进行记录,默认值10000即10毫秒,若所有命令都如此慢那并发将不超过1000QPS,值为0代表记录所有命令,值小于0代表不记录任何命令;
4. 慢查询命令
A. slowlog get [N]:获取慢查询列表中的慢查询信息,其中N代表取出多少条慢日志数据;
字段1:唯一性的日志标识符;
字段2:被记录命令的执行时间点;
字段3:查询执行时间,单位为微妙;
字段4:完整的执行命令
B. slowlog len:获取慢查询队列长度;
C. slwolog reset:清空慢查询队列。
二、Redis性能调优
1. redis.conf配置文件优化
2. linux参数优化
A. vm.overcommit_memory = 1:
B. net.core.somaxconn = 2048:内核参数默认128,对于负载很大的服务是不够的;
注意:在/etc/sysctl.conf中编写,执行sysctl -p使配置生效;
3. 其他性能优化
A. 禁用THP特性:在/etc/rc.local中添加echo never > /sys/kernel/mm/transparent_hugepage/enabled,然后source /etc/rc.local生效配置;
B.
4. Redis危险命令禁用
https://blog.csdn.net/wfy2695766757/article/details/95751044
5. Redis参数
可参考:Redis性能优化
Redis之Connection reset by peer
https://www.freesion.com/article/8688761517/