pika 简介

pika 是 360 DBA 和基础架构组联合开发的类 redis 存储系统, 完全支持 Redis 协议,用户不需要修改任何代码, 就可以将服务迁移至 pika;有维护 redis 经验的 DBA 维护 pika 不需要多少学习成本。

主要解决的是用户使用 Redis 的内存大小超过 50G、80G 等等这样的情况,会遇到启动恢复时间长,一主多从代价大,硬件成本贵,缓冲区容易写满等问题。

安装环境介绍

操作系统:CentOS 7.6.1810

pika 版本:v3.0.7

安装方式:编译安装

在 github 上,pika 项目有 release 出对应的二进制,但是都是针对 CentOS5、CentOS6,没有 CentOS7。编译安装也很简单。

源码编译

1、安装依赖库(有一些包 epel-release 源上才有)

yum -y install epel-release && yum -y install snappy-devel glog-devel gflags-devel

2、安装 gcc、make,推荐使用 gcc4.8 以上的版本

yum install gcc-c++ make

3、安装 git,从 github 直接拉取代码库,也可以进入 release 页面下载对应版本的源码

yum -y install git

4、clone 代码库

git clone   https://github.com/Qihoo360/pika.git

cd pika

5、查看获取版本标签,找到想要的版本

git  tag

6、切换到 tag 的代码位置

git  checkout v3.0.7

7、使用 make 进行编译

make

8、output 目录就是编译出来的二进制文件所在的目录,直接拷贝到想要安装的目录就完成安装了。

cp  -rp  output   /opt/pika

9、启动 pika

cd /opt/pika

./bin/pika  -c  ./conf/pika.conf

10、测试

redis-benchmark  -p 9221

总结

pika 的单线程的性能肯定不如 redis, pika 是多线程的结构, 因此在线程数比较多的情况下, 某些数据结构(string、hash 等)的性能可以优于 redis。

pika 肯定不是完全优于 redis 的方案, 只是在某些场景下面更适合。根据业务的场景挑选合适的方案。

Pika 的数据主要存储在磁盘中,这就使得其在做数据备份时有天然的优势,可以直接通过文件拷贝实现。

当然 SSD 磁盘是必须的。