Pika
pika是360奇虎公司开源的一款类redis存储系统,主要解决的是用户使用 Redis 的内存大小超过 50G、80G 等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题。
Pika 就是针对这些场景的一个解决方案:
- Pika 的单线程的性能肯定不如 Redis,Pika 是多线程的结构,因此在线程数比较多的情况下,某些数据结构的性能可以优于 Redis;
- Pika 肯定不是完全优于 Redis 的方案,只是在某些场景下面更适合,DBA 可以根据业务的场景挑选合适的方案。
Pika架构
主要组成
- 网络模块 pink,对网络编程的封装,用户实现一个高性能的 server 只需要实现对应的 DealMessage 函数即可,支持单线程模型、多线程 worker 模型;
- 线程模块,见下文;
- 存储引擎 nemo,基于 Rocksdb 修改,封装 Hash, List, Set, Zset 等数据结构;
- 日志模块 binlog,解决了同步缓冲区太小的问题;
pika线程
注意:本文归作者所有,未经作者允许,不得转载