最近在学redis,由于笔者是学运维的,所以推荐学习运维的小伙伴参考,希望对大家有帮助!
redis运维篇上篇:http://t.csdnimg.cn/MfPud
附加redis多用户管理:http://t.csdnimg.cn/DY3yx
目录
十.redis慢日志
面试题:redis慢,怎末排查
1.查看系统资源的占用情况
2.查看慢日志情况
1.查看慢日志的默认配置
127.0.0.1:6379> config get slow*
1) "slowlog-max-len"
2) "128" #最多纪录128个
3) "slowlog-log-slower-than"
4) "10000" #默认超过10毫秒就会记录
2.设置慢日志的时间
127.0.0.1:6379> config set slowlog-log-slower-than 1000 #超过1ms会被认定为慢日志
OK
127.0.0.1:6379> config get slow*
1) "slowlog-max-len"
2) "128"
3) "slowlog-log-slower-than"
4) "1000" #1ms为慢日志
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.产生慢日志
127.0.0.1:6379> keys * #当查询时间大于1ms,会产生慢日志
重复keys *操作获取多条慢日志
5.查询慢日志
127.0.0.1:6379> slowlog get #默认获取最近10条慢日志
127.0.0.1:6379> slowlog get 5 #获取最近5条慢日志
127.0.0.1:6379> slowlog len #查看慢日志的条数
(integer) 20
127.0.0.1:6379> slowlog reset #清空慢日志
6.Slowlog各字段意思
127.0.0.1:6379> slowlog get
1) 1) (integer) 39 #慢日志的id,从0开始
2) (integer) 1713758193 #慢日志时间戳,慢日志产生的时间
3) (integer) 14426 #慢日志的运行时间
4) 1) "keys" #产生慢日志的命令
2) "*"
5) "127.0.0.1:46862"
6) ""
十一.redis的key的有效期
-1代表key永久生效,-2代表key被删除了
127.0.0.1:6379> set name1 test1
OK
127.0.0.1:6379> get name1
"test1"
127.0.0.1:6379> ttl name1 #key的生命周期
(integer) -1
127.0.0.1:6379> expire name1 20 #设置key的有效期为20s
(integer) 1
127.0.0.1:6379> ttl name1
(integer) 8
127.0.0.1:6379> ttl name1
(integer) -2
此时key被回收了
十二.redis禁用的危险命令
>flushall #会清空redis的所有数据
>flushdb #清空db中的所有数据
>keys * #在建过多的时候容易阻塞卡住
对禁用命令配置
vim /etc/redis.conf
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""
十三.redis压测工具
会对redis里的所有命令进行测试
redis-benchmark -a redispwd #默认的并发50个,一共10万个请求
十四.redis的两种持久化存储方式
14.1RDB持久化存储
RDB持久化存储
redis默认开启了RDB快照方式,提供持久化存储的功能
1.RDB存储方式的配置
127.0.0.1:6379> config get dir #查看存储路径的设置
1) "dir"
2) "/data/redis"
127.0.0.1:6379&