redis慢查询查看
1、配置文件redis.conf中配置
slowlog-log-slower-than 10000 (执行时间超过10毫秒的查询都是慢查询)
slowlog-max-len 128 (慢查询的最大条数,如果超过128条会按照先进先出规则移除)
2、通过命令设置
config set slowlog-log-slower-than 1000 (设置慢查询的时间阈值,0表示记录所有的查询,-1表示所有的查询都不记录)
config rewrite (写入配置文件)
[root@hadoop1 redis-5.0.5]# src/redis-cli -a 123456
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> config set slowlog-log-slower-than 1000
OK
127.0.0.1:6379> config rewrite
OK
127.0.0.1:6379> quit
[root@hadoop1 redis-5.0.5]# cat redis.conf |grep slowlog
slowlog-log-slower-than 1000
slowlog-max-len 128
[root@hadoop1 redis-5.0.5]#
3、查看慢查询
slowlog get
redis性能测试工具redis-benchmark
官网的指标是10w/s
1、模拟100个连接100000个请求
src/redis-benchmark -h 192.168.1.250 -p 6379 -c 100 -n 100000
关键指标截图:
10万个请求需要3秒,每秒处理3万多请求,说明服务器性能不好,证明服务器性能也可以避免程序员背锅呀!惨痛的教训!
2、测试读取大小为100字节的数据包的性能
redis数据包大小一般在【50,150】之间,拿100字节进行测试比较合理
src/redis-benchmark -h 192.168.1.250 -p 6379 -q -d 100
每秒的处理请求数3万+
3、只测试set,get的操作性能
src/redis-benchmark -h 192.168.1.250 -p 6379 -t set,get -n 100000 -q
每秒处理请求3万+
4、测试某些脚本的性能
src/redis-benchmark -h 192.168.1.250 -p 6379 -n 100000 -q script load “redis.call(‘set’,‘guojf’,‘100’)”
每秒处理3万+的请求
redis resp协议
redis客户端和服务器通过socket通信;
redis客户端和服务端采用RESP(REdis Serialization Protocol)协议通信;
RESP采用tcp的连接方式进行数据传输,然后根据解析规则解析相应信息完成交互。
通过模拟redis服务端和客户端通信看RESP协议:
redis pipeline管道处理
客户端和服务端通过一条条指令进行交互,在进行批量操作时每条指令都要经过网络的往返传输,pipiline是通过批量传输大量指令,立即返回ÿ