大容量Redis 解决方案- Pika
2020-02-27 107浏览
- 1.Pika chenzongzhi@360.cn
- 2.Introduce • Pika 是DBA 和 Bada团队一起设计开发的大容量 Redis的解决方案
- 3.概要 • 大容量Redis 问题 • Pika 如何解决 • Pika vs Redis
- 4.Redis • 恢复时间长 • 50G redis 回复时间70分钟 • 同时开启aof 和 rbd
- 5.Redis • 一主多从代价非常大 • 主库挂掉后升级从库, 所有的从库全部重传数 据
- 6.Redis • 跨机房场景, 缓冲区的限制2G • 缓冲区是循环使用 • 网络原因很容易将数据堵死, 那么就会发生大 量数据重传
- 7.Redis • 内存价格昂贵 • 线上机型64G, 96G内存, 一般使用80% • Redis 做了微创新, 支持了读数据接口对用户 友好, 用户喜欢使用. 因此延迟要求不高, 数 据量大也存储于Redis
- 8.Pika
- 9.
- 10.Pika • Pink • Bada 团队开发网络编程框架, 支持pb, redis 等等协议 • 支持单线程模型, 多线程worker模型
- 11.
- 12.Pika • Nemo • Pika 的存储引擎, 基于Rocksdb 实现. 实现了 Hash, List, Set 等数据结构 • Rocksdb 启动只需要加载log 文件 • Rocksdb 大量使用的本地磁盘
- 13.
- 14.Pika • Binlog • 顺序写文件, 通过Index + offset 进行同步点 检查 • 解决了缓冲区小的问题 • 支持全同步 + 增量同步
- 15.
- 16.Implementation • 秒删 • 全量同步 • 不阻塞备份 • 空间回收 • DBA关怀命令
- 17.秒删 • 通过修改Rocksdb, 增加 version, timestamp 字 段.删除只需要修改metadata • 支持亿级别数据秒删
- 18.备份 • 通过Rocksdb bgsave Engine
- 19.全量同步 • 备份 + binlog
- 20.空间回收 • 修改Rocksdb 手动compact 策略, 支持低优先级 的手动compact • 每天晚上定期执行
- 21.Pika vs Redis • 缺点 • • 性能 • Redis 10万 QPS, pika 5万 QPS • 写入pika 3ms, Redis 2ms. • 读取pika 3~5 ms, Redis 1ms 同步 • 主从同步极限3万 • 目前内部写入大于1万业务很少
- 22.Pika vs Redis • 优点 • 支持半同步 • 启动数据快 • 对网络容忍度高 • 性价比更高
- 23.wiki •https://github.com/baotiao/pika•http://wiki.dba.api.hulk.corp.qihoo.net:8360/display/DBA/pika
- 24.Thanks