redis慢查询分析,性能测试

Redis慢查询分析
redis命令生命周期:发送 排队 执行 返回
慢查询只统计第3个执行步骤的时间
1,动态设置6379:> config set slowlog-log-slower-than 10000 //10毫秒
使用config set完后,若想将配置持久化保存到redis.conf,要执行config rewrite
2,redis.conf修改:找到slowlog-log-slower-than 10000 ,修改保存即可
注意:slowlog-log-slower-than =0记录所有命令 -1命令都不记录
三、慢查询原理
慢查询记录也是存在队列里的,slow-max-len 存放的记录最大条数,比如
设置的slow-max-len=10,当有第11条慢查询命令插入时,队列的第一条命令
就会出列,第11条入列到慢查询队列中, 可以config set动态设置,
也可以修改redis.conf完成配置
获取队列里慢查询的命令:slowlog get
获取慢查询列表当前的长度:slowlog len //以上只有1条慢查询,返回1;
1,对慢查询列表清理(重置):slowlog reset //再查slowlog len 此时返回0 清空;
2,对于线上slow-max-len配置的建议:线上可加大slow-max-len的值,记录慢查询存长命令时redis会做截断,不会占用大量内存,线上可设置1000以上
3,对于线上slowlog-log-slower-than配置的建议:默认为10毫秒,根据redis并发量来调整,对于高并发建议为1毫秒
4,慢查询是先进先出的队列,访问日志记录出列丢失,需定期执行slow get,将结果存储到其它设备中(如mysql)
获取队列里慢查询的命令:slowlog get
获取慢查询列表当前的长度:slowlog len //以上只有1条慢查询,返回1;
1,对慢查询列表清理(重置):slowlog reset //再查slowlog len 此时返回0 清空;
2,对于线上slow-max-len配置的建议:线上可加大slow-max-len的值,记录慢查询存长命令时redis会做截断,不会占用大量内存,线上可设置1000以上
3,对于线上slowlog-log-slower-than配置的建议:默认为10毫秒,根据redis并发量来调整,对于高并发建议为1毫秒
4,慢查询是先进先出的队列,访问日志记录出列丢失,需定期执行slowlog get,将结果存储到其它设备中(如mysql)
./redis-cli -h 192.168.126.129 -r 3 -a 12345678 ping //返回pong表示192.168.126.129:6379能通,正常
./redis-cli -h 192.168.126.129 -r 100 -i 1 info |grep used_memory_human //每秒输出内存使用量,输100次
./redis-cli -h 192.168.126.128 -p 6379 -a 12345678
对于我们来说,这些常用指令以上可满足,但如果要了解更多
执行redis-cli --help, 可百度
./redis-server ./redis.conf & //指定配置文件启动
./redis-server --test-memory 1024 //检测操作系统能否提供1G内存给redis, 常用于测试,想快速占满机器内存做极端条件的测试,可使用这个指令
测试命令事例:
1、./redis-benchmark -h 192.168.1.111 -p 6379 -c 100 -n 100000
100个并发连接,100000个请求,检测host为localhost 端口为6379的redis服务器性能
2、./redis-benchmark -h 192.168.1.111 -p 6379 -q -d 100
测试存取大小为100字节的数据包的性能

3 ./redis-benchmark -h 192.168.126.129 -p 6379 -t set,lpush -n 100000 -q
只测试 set,lpush操作的性能

4、./redis-benchmark -h 192.168.126.129 -p 6379 -n 100000 -q script load “redis.call(‘set’,‘foo’,‘bar’)”
只测试某些数值存取的性能
pipeline是多条命令的组合,为了保证它的原子性,redis提供了简单的事务,。
redis的简单事务,将一组需要一起执行的命令放到multi和exec两个
命令之间,其中multi代表事务开始,exec代表事务结束
watch命令:使用watch后, multi失效,事务失效

总结:redis提供了简单的事务,不支持事务回滚

猜你喜欢

转载自blog.csdn.net/shidebin/article/details/83377095