《Redis核心技术与实战》学习总结(18)
新浪微博作为Redis深度用户,对Redis做了一些优化,一起来看看吧。
1微博对Redis的技术需求微博对Redis的三大具体需求如下
-
能够提供高性能、高并发的读写访问,保证读写低延迟;(高性能)
-
能够支持大容量存储;(大容量)
-
可以灵活扩展,对于不同业务能够进行快速扩容;(易扩展)
-
针对持久化需求,使用 全量RDB + 增量AOF复制 结合的机制,避免数据可靠性或性能降低的问题。(这也是Redis4.0之后提供的混合机制)
-
在AOF日志写入磁盘时,用额外的BIO线程负责实际的刷盘工作,避免AOF日志慢速刷盘阻塞主线程的问题。
-
增加了aofnumber配置项,用于设置AOF文件的数量,控制AOF写盘时的文件总量,避免写入过多的AOF日志文件导致的磁盘写满问题。
-
在主从库复制机制上,使用独立的复制线程进行主从库同步,避免对主线程的阻塞影响。

微博有多条不同业务线,它们对Redis容量的需求各不一致,而且可能随时有扩容和缩容的需求。
优化内容:微博对Redis进行了服务化改造(RedisService),即使用Redis集群来服务不同的业务场景需求,每一个业务拥有独立的资源,互不干扰。同时,所有的Redis实例构成一个资源池,资源池本身也能轻松地扩容。
实现细节:在 Redis 服务化的过程中,微博采用了类似 Codis 的方案,通过集群代理层来连接客户端和服务器端。微博在代理层中实现了丰富的服务化功能支持。在服务化集群中,还有一个配置中心,它用来管理整个集群的元数据。同时,实例会按照主从模式运行,保证数据的可靠性。不同业务的数据部署到不同的实例上,相互之间保持隔离。
本文记录了Redis在2019年公开的分享中描述的微博对于Redis的实践和优化,相信对于我们使用Redis会有一定的启发。
参考资料
极客时间,蒋德钧《Redis核心技术与实战》
黄建宏,《Redis设计与实现》
拉钩教育,刘海丰《架构设计面试精讲》

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2014-08-11 evernote