pika安装配置

简介

Pika是一个可持久化的大容量redis存储服务,兼容string、hash、list、zset、
set的绝大接口(兼容详情),
解决redis由于存储数据量巨大而导致内存不够用的容量瓶颈,
并且可以像redis一样,通过slaveof命令进行主从备份,支持全同步和部分同步,
pika还可以用在twemproxy或者codis中来实现静态数据分片(pika已经可以支持codis的
动态迁移slot功能)

编译安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 安装依赖
yum install -y snappy-devel bz2 libzip-dev libsnappy-dev libprotobuf-dev \
libevent-dev protobuf-compiler libgoogle-glog-dev protobuf-devel \
libevent-devel bzip2-devel libbz2-dev zlib-devel gcc-c++

# 查看gcc版本
gcc -v

# 如果不4.8需要先安装切换到4.8
sudo rpm --import http://ftp.scientificlinux.org/linux/scientific/5x/x86_64/RPM-GPG-KEYs/RPM-GPG-KEY-cern
sudo wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
sudo yum install -y devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
scl enable devtoolset-2 bash

# 下载源码
git clone --recursive https://github.com/Qihoo360/pika.git && cd pika

# 编译
make __REL=1 -j4

# 若编译过程中,提示有依赖的库没有安装,则有提示安装后再重新编译

# 安装
cp -r output /usr/local/pika

# 配置库
echo '/usr/local/pika/lib' > /etc/ld.so.conf.d/pika.conf
ldconfig -v

# 测试
/usr/local/pika/bin/pika -v

配置运行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# 配置
mkdir -pv /data/pika
mv /usr/local/pika/conf/pika.conf /usr/local/pika/conf/pika.conf.ori
cat >/usr/local/pika/conf/pika.conf<<EOF
port : 9221
thread-num : 1
sync-thread-num : 6
sync-buffer-size : 10
log-path : /data/pika/log/
loglevel : info
db-path : /data/pika/db/
write-buffer-size : 268435456
timeout : 60
requirepass :
masterauth :
userpass :
userblacklist :
dump-prefix :
daemonize : yes
dump-path : /data/pika/dump/
pidfile : /data/pika/pika.pid
maxclients : 20000
target-file-size-base : 20971520
expire-logs-days : 7
expire-logs-nums : 10
root-connection-num : 2
slowlog-log-slower-than : 10000
slave-read-only : 0
db-sync-path : /data/pika/dbsync/
db-sync-speed : -1
binlog-file-size : 104857600
compression : snappy
max-background-flushes : 1
max-background-compactions : 2
max-cache-files : 5000
max-bytes-for-level-multiplier : 10
EOF

# 启动
/usr/local/pika/bin/pika -c /usr/local/pika/conf/pika.conf

# 检测端口
netstat -tunlp | grep 9221

测试

1
2
3
4
5
6
7
8
9
# 基本测试
yum install -y redis
redis-cli -h 127.0.0.1 -p 9221
set will mgx
get will

# 性能测试
redis-benchmark -h 127.0.0.1 -p 9221 -n 1000000 -t set,get \
-r 10000000000 -c 120 -d 200

参考文档