藏经阁-微博的Redis定制之路 本文主要介绍微博研发中心数据库技术负责人肖鹏关于Redis定制之路的探索和发展历程,共分为三个阶段:探索期、发展期和稳定期。 探索期:野蛮生长 在这个阶段,微博的Redis集群第一次上线,遇到了许多问题,如性能问题、业务波动故障恢复问题、宕机后恢复主从速度慢、带宽洪峰问题和运维复杂度问题等。为了解决这些问题,肖鹏和他的团队对Redis进行了多方面的改造,包括: * 从主线程中独立出来Bio thread,专门执行bgsave等操作,避免干扰。 * 内置cronsave功能,控制备份时间。 * 放弃bgaofrewrite。 * 修改aof机制,增加pos位。 * 修改replication机制,实现基于aof+pos位置的数据同步。 * 修改落地机制,改为RDB+AOF滚动机制,保证数据持久化存储。 发展期:争奇斗艳 在这个阶段,微博的Redis集群遇到了容量问题、关系类存储容量问题、成本之间的矛盾、计数类需求琳琅满目的计数类场景等问题。为了解决这些问题,肖鹏和他的团队对Redis进行了多方面的改造,包括: * 定位从storage变为cache。 * 放弃原生hash结构,定制longset数据结构。 * 固定长度开放寻址的hash数组。 * Miss后,Client批量O(1)MEM 1/10。 * 根据业务场景将kv改为定长kv。 * Double hash解决冲突。 * 预先分配内存,降低指针开销MEM 1/4。 * Schema支持多列存计数,降低内存占用,减少网络开销。 * 冷热数据分离,热内存,冷磁盘。 * 增加LRU cache模块,保证冷数据的性能。 * 异步IO线程访问磁盘,避免性能问题。 稳定期: 在这个阶段,微博的Redis集群已经基本稳定,肖鹏和他的团队继续对Redis进行优化和改进,确保Redis集群的高性能和高可用性。 本文展示了微博Redis集群的发展历程,从探索期到发展期再到稳定期,肖鹏和他的团队通过不断的改造和优化,终于使Redis集群达到高性能和高可用的目标。
- 粉丝: 86
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助