#Pika
##Introduction [中文] (https://github.com/Qihoo360/pika/blob/master/README_CN.md)
Pika is a persistent huge storage service , compatible with the vast majority of redis interfaces (details), including string, hash, list, zset, set and management interfaces. With the huge amount of data stored, redis may suffer for a capacity bottleneck, and pika was born for solving it. Except huge storage capacity, pika also support master-slave mode by slaveof command, including full and partial synchronization. You can alse use pika in twemproxy or codis for static(not support data migration in codis) distributed Redis solution
##UserList
##Feature
- huge storage capacity
- compatible with redis interface, you can migrate to pika easily
- support master-slave mode (slaveof)
- various management interfaces
You can try to use our pre-build binary versions. For now, only Centos5 and Centos6 are supported. The binary ones can be found at the release page which are called pikaX.Y.Z_centosK_bin.tar.gz.
# 1. unzip file
tar zxf pikaX.Y.Z_centosK_bin.tar.gz
# 2. change working directory to output
# note: we should in this directory, caz the RPATH is ./lib;
cd output
# 3. run pika:
./bin/pika -c conf/pika.conf
- snappy - a library for fast data compression
- zlib - a library for fast data compression
- bzips - a library for fast data compression
- protobuf - google protobuf library
- glog - google log library
-
linux - Centos 5&6
-
linux - Ubuntu
If it comes to some missing libs, install them according to the prompts and retry it.
Upgrade your gcc to version at least 4.7 to get C++11 support.
Then just type
make __REL=1
./output/bin/pika -c ./conf/pika.conf
If failed, move pika source/lib/_VERSION/lib/ to the rpath defined in Makefile and relanch.
cp PIKA_SOURCE/lib/_VERSION/* RPATH
The PIKA_SOURCE stands for pika source code's root directory;
The __VERSION represents the OS's version, such as 6.2, 5.4...
The RPATH is defined in pika's Makefile
##Performance
Server Info:
CPU: 24 Cores, Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz
MEM: 165157944 kB
OS: CentOS release 6.2 (Final)
NETWORK CARD: Intel Corporation I350 Gigabit Network Connection
Client Info:
Same as Server
Test:
Pika run with 18 worker threads, and we test it using 40 client;
1. Write Performance:
Client push data by set, hset, lpush, zadd, sadd, each interface has 10000 key range;
result: 110000 qps
2. Read Performance:
Client pull data by get, hget, lindex, zscore, smembers, 25000000 keys stored in pika and each interface has 5000000 key range
result: 170000 qps
##Documents
##Contact Us
Mail: [email protected]
QQ group: 294254078