一、Redis的慢日志
问题:如果有人反馈redis慢,如何进行排查?
系统资源情况
查看慢日志情况
1.查看慢日志的默认配置
>CONFIG GET slow* #查看慢日志的配置
1) "slowlog-max-len"
2) "128" #最多记录128个
3) "slowlog-log-slower-than"
4) "10000" #默认超过10毫秒就会记录
2.设置慢日志的时间是1毫秒,查询超过1毫秒就为慢日志
>config set slowlog-log-slower-than 1000 #设置慢日志的时间是1毫秒,查询超过1毫秒就为慢日志
> CONFIG GET slow* #查看
1) "slowlog-max-len"
2) "128"
3) "slowlog-log-slower-than"
4) "1000" #1毫秒为慢日志
3.使用Shell批量写入数据并获取,多写入些数据,方便我们查询数据大的时候产生慢日志
# for i in $(seq -w 100000);do redis-cli -a redispwd set name${i} test${i}; redis-cli -a redispwd get name${i}; done 2>/dev/null
4.产生慢日志
>KEYS * #查询一次,当操作时间大于1毫秒,就会产生一条慢日志
>KEYS *
>KEYS *
....可以多查询几次,多获取几条慢日志
5.查询慢日志
>SLOWLOG get #默认获取最近10条
>SLOWLOG get 5 #获取5条
>SLOWLOG len #慢日志量,查看慢日志的条数
>SLOWLOG reset #清空慢日志
6.Slowlog各字段意思
127.0.0.1:6379> SLOWLOG get
1) 1) (integer) 115 #慢日志的id,从0开始,第115个id
2) (integer) 1668215297 #时间戳,慢日志产生的时间点,可以通过 date -d @1668215297 获取慢日志产生的时间
3) (integer) 69284 #慢日志运行的时间69毫秒
4) 1) "keys" #产生慢日志的命令,一般是当数据量太多时候,运行keys *命令会比较慢
2) "*"
5) "127.0.0.1:60014"
6) ""
二、Redis的key的有效期
给Redis的key设置有效期,-1表示永久,-2代表Redis回收了(key已经自动删除)
>set name test1 #默认设置的key是永久有效的
>get name
"test1"
>ttl name #查看key的状态,生命周期,-1表示永久有效
(integer) -1
>expire name 20 #方法1: 给key设置有效期,单位:秒,设置有效期是20s
>set name2 test02 EX 20 #方法2: 再创建key时候直接给key设置有效期:20s
标签:name,Redis,毫秒,key,日志,有效期
From: https://www.cnblogs.com/fxxy/p/17192096.html