替代品 Pika
Pika 是 360 开源的类 Redis 存储系统。主要解决的是用户使用 Redis 的内存大小超过 50G、80G 等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题。Pika 就是针对这些场景的一个解决方案。
Pika 底层采用了 rocksdb 作为存储引擎。数据库基于内存和文件,所以性能要比 Redis 低。但是 Pika 目标并不是取代redis, 而是 redis 的一个补充. 是在使用 redis 容量过大的场景下面的一个解决方案。
优缺点
优点:
- 节约成本,占用内存较小,写入数据达到 700 GB 后,占用内存在 7GB 左右
- 采用 snappy 压缩数据,数据压缩比较大,写入数据达到 700GB 后,占用磁盘约为 110 GB 左右
- 重新启动后恢复数据的过程很快,没有redis 将数据加载到内存的过程
- 多线程,不会像 Redis 一样由于某个耗时操作导致后面操作阻塞的现象
- 自带持久化
- 官方支持 Docker 部署
缺点:
- 严重依赖磁盘 IO 性能,注意不同实例写入同一块盘时的影响
- lsm tree 普遍存在的 IO 放大问题
- 不支持 multi exec 的事务操作
- list 相关操作性能比 Redis 差
- compact 时较大的影响写入性能
- 极限性能下对 cpu 的压力较大