redis如果set一个非常简单的字符串,比方a,在使用ab进行并发测试下,redis读取时非常快,ab上反映的的并发连接可以到三千,但是当set存储的这个字符串变长,在并发下redis的get读取速度就相应的在变慢,当存储一个序列化的数据时候,字符比较多,这时候qps下降到只有160左右,这个redis严重限制了并发。使用redis,不可能不存储比较长的序列化字符串数据,但这极大的降低了读取速度,redis这个问题该怎么解决?使用的node服务,node中使用的ioredis进行的redis操作
2 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
进行这个并发测试,之前忽略了带宽的问题。在带宽不变的情况下,只要请求回送的字符增多,那么并发下的qps就会下降。服务器上行带宽有限,每个请求回送数据比较多,导致这里出现了拥堵,造成了很多请求等待时间过长,qps下降。并发数越多,上行出口这里等待的请求数越多,qps就直线下降。
慕哥9229398
TA贡献1877条经验 获得超6个赞
1、看下你压测时候连接池是否够,是否把压测端的连接池打满了。2、redis单线程,对redis处理的速度是够的,如果大部分都是过长的数据时候,单线程操作时候,IO比例会占用过长时间。3、可以考虑Redis集群,把数据均衡到多个集群中,不管多机多实例部署还是单机多实例部署,就是充分利用CPU资源。
添加回答
举报
0/150
提交
取消
