Redis官方文档10-redis的QPS能上多少


在linux上可以有500K的RPS(requests per second)

一般来说CPU不是瓶颈,内存和网络才是

1、sentinel和cluster区别和各自适用场景?

高可用 TODO husd

2、redis单线程为什么快?

1、Redis是纯内存操作,需要的时候需要我们手动持久化到硬盘中

2、Redis是单线程,从而避开了多线程中上下文频繁切换的操作。

3、Redis数据结构简单、对数据的操作也比较简单

4、使用底层模型不同,它们之间底层实现方式以及与客户端之间通信的应用协议不一样,Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求

5、使用多路I/O复用模型,非阻塞I/O

4、热key产生原因和后果以及怎么解决? 怎么发现的?

把key分开,就是为了降低单机压力,如果有热key,单机压力过大,影响性能,甚至服务可不用之后缓存被击穿,mysql被压死

怎么发现?

1、凭经验判断 例如商品秒杀 做活动 热门IP等。

2、在客户端进行收集,缺点是入侵了代码。

3、代理层做收集

4、使用redis自己的工具 monitor命令 4.0.3之后,提供了-hotkeys选项

5、自己抓TCP包,自己评估

怎么解决?

1、二级缓存,缓存本地化,直接放JVM里,缺点是内存有限,有过期问题

2、把热key进行多个redis备份,进来之后随机选redis集群进行访问

5、一个Redis实例最多能存放多少的keys,List、Set、Sorted Set他们最多能存放多少元素?

理论上Redis可以处理多达2的32次方的keys,并且在实际中进行了测试,每个实例至少存放了2亿5千万的keys。我们正在测试一些较大的值。

任何list、set、和sorted set都可以放2的32次方个元素。

换句话说,Redis的存储极限是系统中的可用内存值。