Redis服务支持5000万的QPS,有什么好的思路?

一、题目分析

1. 仅根据qps计算多少机器是不够的

如果一个Redis服务器支持五千万上面的读写请求,那么此题很简单,一个机器,一个Redis进程即可。

但显然没有这样的超级机器,Redis也做不到一个进程就能处理五千万QPS。

那么一个Redis到底能处理多少QPS?

如果是简单的读写,那么一个Redis在一个硬件服务器(只要1个核,CPU为当前主流即可),就能处理Million级别的QPS,即至少百万。

所以,上面的问题好像简单了,我们只要用50个Redis进程就能支持题目所需的五千万,然后在一个50核的机器上跑这五十个进程,即可。

所以,答案好像很简单:一台五十核机器,五十Redis进程。

但是这样的吗?不是的,因为很可能应用环境并不是只有简单的有限量的key,如果key不断增多,那就会出现大麻烦。

2. 瓶颈在哪?

难点在那个两千万QPS的写入(即20M qps write),我来仔细分析给你看。

假设:每个写入是100字节(即key+value之和平均在100Bytes,即0.1KB),而且万一这两千万QPS的写入都是新增数据,而且随后的三千万QPS(即30M qps read)还可能查历史的数据,我们会有什么麻烦?

显然,下一秒将产生 0.1KB * 20M qps = 2GB 新增数据,每天将产生 2GB * 86400 秒 = 173 TB 新增数据。

没有任何一台机器的内存可以支持一天的新增数据容量,更何况服务运行时间以年为单位。

所以,我们只能用到磁盘。

但问题是:如果将数据存盘,Redis是查不到的。

但如果Redis能查到磁盘上的数据,是否能解此题?

RedRock支持Redis存储磁盘,那么我们尝试用RedRock解解此题。

二、首先拆分

假设我们

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值