1、redis性能测试的意义
了解redis在不同情况下的性能表现,并分析其性能瓶颈,找出相应的解决方案,提高整体架构的性能。
提高架构性能的方式:
缓存:对象缓存(redis、memched等)、应用缓存(代理缓存)、内容缓存(CDN)
异步:即应用的解耦,如各种队列(RabbitMQ、RocketMQ、Kafka等)
缓存适合应用于读操作,异步或者消息队列更适用于写操作。
为什么使用redis:
同配置2C4G的云主机,对比QPS,redis达到86206.90QPS,而mysql只达到10507.48QPS,所以当当前业务架构不变的情况下,业务并发量增大,mysql数据库不能很快的提供服务的时候,这时候可以加入redis作为缓存,来降低后端服务器的压力。
2、测试方式
Redis自带有性能测试攻击redis-benchmark,并且目前主流针对redis性能测试的厂商都采用这款软件作为评测标准,所以我们也用这款软件针对redis各个方面来进行压测。
3、常见的redis性能指标
(1)PING_INLINE:每秒完成多少次二进制安全空格的PING操作
(2)GET:每秒完成多少次GET key vlaue
(3)SET:每秒完成多少次SET key vlaue
(4)INCR:每秒完成多少次原子计数
(5)MSET:每秒多个key vlan请求次数
4、测试环境搭建
4.1 测试平台
服务器:2C4G 20G系统盘 20G RSSD云盘,centos7.6 64位 redis3.0
4.2 安装redis-benchmark
redis-benchmark为redis自带,不需要额外安装,只需要安装redis-cli即可
4.3 redis-benchmark 命令释义
5、运行性能测试
参数可以自定义,咱们这次测试使用如下参数。
可以使用网络中的redis客户端对服务端进行测试,但是为了测试redis在服务器上的真正性能,咱们使用本地测试的方式。
redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000
并发50 请求10000条,效果如下图
当前咱们也可以采取精简测试的方式,如下图
redis-benchmark -t set,get,incr -n 100000 -c 50 -q
6、性能分析
一般咱们都是多次测试取其均值作为参考,总结类似如下表格,或者可以根据表格做成相应的效果图。