PING_INLINE: 548606.50 requests per second
PING_BULK: 544573.31 requests per second
SET: 231830.31 requests per second
GET: 512163.91 requests per second
INCR: 230861.56 requests per second
MSET (10 keys): 94991.12 requests per second
LPUSH: 196093.81 requests per second
RPUSH: 195186.69 requests per second
LPOP: 131156.14 requests per second
RPOP: 152292.77 requests per second
LPUSH (needed to benchmark LRANGE): 196734.20 requests per second
LRANGE_10 (first 10 elements): 334448.16 requests per second
LRANGE_100 (first 100 elements): 50705.12 requests per second
LRANGE_300 (first 300 elements): 16745.16 requests per second
LRANGE_450 (first 450 elements): 6787.94 requests per second
LRANGE_600 (first 600 elements): 3170.38 requests per second
SADD: 160885.52 requests per second
SPOP: 128920.80 requests per second
HSET: 180209.41 requests per second
HINCRBY: 153364.81 requests per second
HINCRBYFLOAT: 141095.47 requests per second
HGET: 506791.00 requests per second
HMSET (10 fields): 27777.31 requests per second
HMGET (10 fields): 38998.52 requests per second
HGETALL: 109059.58 requests per second
ZADD: 120583.62 requests per second
ZREM: 161689.33 requests per second
PFADD: 6153.47 requests per second
PFCOUNT: 28312.57 requests per second
PFADD (needed to benchmark PFMERGE): 6166.37 requests per second
PFMERGE: 6007.09 requests per second
Pika
简介 English
Pika是一个可持久化的大容量redis存储服务,兼容string、hash、list、zset、set的绝大部分接口(兼容详情),解决redis由于存储数据量巨大而导致内存不够用的容量瓶颈,并且可以像redis一样,通过slaveof命令进行主从备份,支持全同步和部分同步,pika还可以用在twemproxy或者codis中来实现静态数据分片(pika已经可以支持codis的动态迁移slot功能,目前已合并到master分支,欢迎使用,感谢作者left2right和fancy-rabbit提交的pr)
Pika用户
更多
特点
使用
二进制包使用
用户可以直接从releases下载最新的二进制版本包使用.
编译
支持的平台
linux - CentOS
linux - Ubuntu
macOS(Darwin)
依赖软件
编译
如果在CentOS6,centOS7等 gcc 版本小于7的机器上,需要先升级gcc版本
执行如下
第一次编译时,建议使用构建脚本
build.sh
,该脚本会检查本机上是否有编译所需的软件编译后的文件在
output
目录下pika 默认使用
release
模式编译,不能调试,如果需要调试,需要使用debug
模式来编译使用
清空编译
如果需要清空编译内容,视不同情况使用以下两种方法其一:
pika 开发调试
容器化
使用docker运行
构建镜像
如果你想自己构建镜像,我们提供了一个脚本
build_docker.sh
来简化这个过程。脚本接受几个可选参数:
-t tag
: 指定镜像的Docker标签。默认情况下,标签是pikadb/pika:<git tag>
。-p platform
: 指定Docker镜像的平台。选项有all
,linux/amd64
,linux/arm
,linux/arm64
,默认使用当前 docker 的 platform 设置。--proxy
: 使用代理下载 package 以加快构建过程,构建时会使用阿里云的镜像源。--help
: 显示帮助信息。这是脚本的一个示例使用:
使用 pika-operator 部署
使用
pika-operator
可以简单地在 Kubernetes 环境中部署单实例pika
。 __请勿在生产环境中使用此功能__。本地安装:
check pika status
kubectl get pika pika-sample
get pika instance info
kubectl run pika-sample-test –image redis -it –rm –restart=Never
– /usr/local/bin/redis-cli -h pika-sample -p 9221 info
结论
get/set 响应时间 99.9%都在2ms以内。
测试三
测试目的
在pika最佳的worker线程数下,查看各命令的极限QPS。
测试条件
pika的worker线程数:20
key数量:10000
field数量:100(list除外)
value:128字节
命令执行次数:1000万(lrange除外)
测试结果
结论
整体表现很不错,个别命令表现较弱(LRANGE,PFADD,PFMERGE)。
测试四
测试目的
Pika与Redis的极限QPS对比。
测试条件
pika的worker线程数:20
key数量:10000
field数量:100(list除外)
value:128字节
命令执行次数:1000万(lrange除外)
Redis版本:3.2.0
测试结果
可观测性
Metrics
详细请参考 指标 Metrics。
文档
联系方式
Slack Channel
QQ群:294254078