slowlog的概念
slowlog指的是慢查询日志。redis的主线程是单线程的,会将所有命令按照请求时间的先后存放到队列中,当某一时刻接收到的命令足够多,来不及处理时,如果队列中某一条命令执行时间(相对来说)非常久,意味着redis主线程会阻塞一段时间,于是就会出现性能问题。redis会将执行时间超过某个值(默认为10ms)的命令记录下来,我们可以通过分析优化记录中的命令,达到提高redis的性能的效果。值得注意的是slowlog只保存在内存中,效率非常高,并不会影响到redis的性能。
slowlog相关配置
相关配置项:
slowlog-log-slower-than:执行时间的限制值,redis命令执行时间比这个值大,会被记录在slowlog中。值为负数,表示禁用;值为0,强制记录所有命令。单位是微秒。线上环境可以根据实际情况修改该值。
slowlog-max-len:被记录命令的个数,默认为128,其本身没有限制,但是因为slowlog保存在内存中,所以这个值越大,消耗内存越多。当命令个数超过这个值,又有新的命令被记录时,最先记录下的命令会被挤出slowlog(先进先出队列)。线上环境可以根据实际情况修改该值。
【Redis的配置文件】第1340行
修改配置方式
1)、动态配置,在redis服务启动后ÿ