Tumblr中Redis集群控制层有哪些应用

66次阅读
没有评论

共计 1062 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下 Tumblr 中 Redis 集群控制层有哪些应用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

Tumblr 是世界上最流行的轻博客服务,其用户量在最近的一次统计中已经达到 2090 万,超过了全球最大的博客服务 WordPress。下面丸趣 TV 丸趣 TV 小编来讲解下 Tumblr 的 Redis 集群控制层有哪些应用?Tumblr 的 Redis 集群控制层性能如何?

Tumblr 的 Redis 集群控制层有哪些应用

在 Tumblr 初期,其通知系统是由 MySQL+Memcached 的传统架构组成,但是由于通知系统庞大的添加操作,导致 MySQL 负担非常大,经常搞得 InnoDBglobaltransactionmax(1024) 都超出了。于是他们打算重新构建消息系统。首先他们分析了消息系统的应用特点:

按时间排序

唯一性,每一条消息都是唯一的

读写比大概是 60%/30%

每个用户的消息条数一定

数据按用户划分,每个用户只能读自己的消息

Tumblr 的 Redis 集群控制层架构

基于上面应用特点的考虑,Tumblr 选择了 Redis 的 sortedsets 作为其数据存储。

他们的存储方式是:

给每个用户分配一个 sortedsets,其中每一项保存一条通知

每条通知以时间戳为 score 在 sortedsets 中进行排序

超出 100 条通知后进行 trim 操作

Tumblr 的数据量:2300 万个 BLOG,每个 BLOG100 条消息,每条消息体大概 160bytes。

响应速度:大概每秒提供 7,500 次请求,每次请求的响应时间小于 5ms。

考虑到容灾性及可能快速增长的数据量,Tumblr 打算采用 preshard 的方式来架构他们的 Redis 集群,于是他们开发了 Staircar(一个提供 HTTP 服务的 Redis 集群调度管理组件)。下面是他们的通知系统架构图:

实际上在开发 Staircar 前,他们考查了一些其它的类似功能的产品,但都不能满足他们所有需求 (或者说闲杂功能过多)。

Tumblr 的 Redis 集群控制层性能如何

Staircar 由 C 语言写成,以 libevent 为网络驱动层,提供 JSON 格式的 RESTFul 接口,其性能超出了 Tumblr 工程师们的想象,其在最高峰时的响应时间也在 5ms 以下,其性能测试结果是大概能处理每秒 30,000 次左右的请求。

看完了这篇文章,相信你对“Tumblr 中 Redis 集群控制层有哪些应用”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1062字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)