6、Redis禁用危险命令和压测工具

1.Redis禁用危险命令
Redis危险的命令有哪些?

>FLUSHALL           会清空Redis所有数据
>FLUSHDB            会清除当前DB所有数据
>KEYS *               在键过多的时候使用会阻塞业务请求,比如有上千万数据时候,该命令会阻塞卡住

Redis禁用危险命令的配置
禁用需要修改redis的配置文件,然后重启redis

vim /etc/redis.conf
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command KEYS ""

测试命令是否失效

>keys *
发现运行不了
>flushall 
运行不了

2.Redis压测工具

redis-benchmark --help
-c <clients>       Number of parallel connections (default 50)             #默认的并发是50个
-n <requests>      Total number of requests (default 100000)            #默认有10万个请求
压测工具,基本对redis里的每一个命令都会进行测试一遍,
redis-benchmark -a redispwd                                                     #用默认的并发50个,一共10万个请求对redis进行压测
redis-benchmark -a redispwd | tee /tmp/a.log                              #将测试的结果输出到一个log文件

日常输出的一个简介

vim /tmp/a.log
PING_INLINE:                                                                      测试PING
  100000 requests completed in 1.10 seconds                          一共处理了10万个PING请求,在1.1秒中完成
  50 parallel clients                                                               50个并发
  3 bytes payload                                                                 每个请求数据量是3个字节
  ......
100.000% <= 2.527 milliseconds (cumulative count 100000)    测试PING的一个延时,<2.5毫秒的有100%

SET:                                                                                   测试SET命令
  100000 requests completed in 1.07 seconds                         一共执行了10万次SET操作,在1.07秒中完成
  50 parallel clients                                                              50个并发
  3 bytes payload                                                                每个请求数据量是3个字节  
  ......
23.353% <= 0.207 milliseconds (cumulative count 23353)       %23.353的命令执行时间小于0.207毫秒
69.820% <= 0.303 milliseconds (cumulative count 69820)       %69.820的命令执行时间小于0.303毫秒
100.000% <= 2.183 milliseconds (cumulative count 100000)    %100的命令执行时间小于2.183毫秒
Summary:
  throughput summary: 93370.68 requests per second             redis每秒可以处理93370.68次set请求
  latency summary (msec):
          avg       min       p50       p95       p99       max
        0.302     0.072     0.247     0.599     1.111     2.183

GET:                                                                                 测试GET命令
  100000 requests completed in 1.12 seconds                        一共执行了10万次GET操作,在1.12秒中完成
  50 parallel clients                                                              50个并发
  3 bytes payload                                                                每个请求数据量是3个字节 
  ......
50.000% <= 0.255 milliseconds (cumulative count 52277)        %50的命令执行时间小于0.255毫秒
75.000% <= 0.375 milliseconds (cumulative count 75710)        %75的命令执行时间小于0.375毫秒
100.000% <= 2.447 milliseconds (cumulative count 100000)     %100的命令执行时间小于2.447毫秒
Summary:
  throughput summary: 89445.44 requests per second               redis每秒可以处理89445.44次get请求    
  latency summary (msec):
          avg       min       p50       p95       p99       max
        0.326     0.048     0.255     0.687     1.311     2.447

...测试每一个命令,最终给一个结果:
# redis-benchmark -a redispwd -n 10                                             #用默认的并发50个,一共10个请求对redis进行压测
posted @ 2023-03-08 15:15  XingFang  阅读(276)  评论(0编辑  收藏  举报