新特性:

  • 分片模式下支持哨兵
  • 分片模式下支持Slaveof命令,详见 Slot Commands
  • 新增Redis 5.0支持的ZPopMax/ZPopMin命令, 使用方式与Redis完全一致
  • 慢日志记录更多的信息(例如DB名称,命令长度,参数数量等), 方便排查问题
  • Info Data中新增db_fatal, db_fatal_msg字段用于监控Pika下所有Rocksdb的异常状态
  • Blackwidow层面实现全新的LRUCache, 使用LRUCache数据结构相关接口性能会有大幅度的提升(例如用redis-benchmark测SPop, QPS从5w提升到12w+)

Bug修复:

  • 修复PubSub场景下调用Ping,会返回报错的问题
  • 修复Pika多Key命令不能保证原子性的问题(例如Del, MSet等)
  • 修复之前版本Info信息中去掉了read_only导致监控异常的问题

注意事项:

  • 分片模式和经典模式不可兼容,请在启动时候配置好启动模式
  • 经典模式下取消info log命令,info log 的binlog offset移至info replication,info log 的binlog size移至info data
  • 分片模式下取消info replication命令,用pkcluster info slot替代
  • 由于redis-cli 对于数据展示格式限制,对于pkcluster info slot的数据展示格式不够人性化。可以自行修改redis-cli代码 redis-cli modification
  • pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
  • pika3.1.0版本不再支持双主
  • pika3.1.0版本使用pb协议进行内部通信,不能直接和之前的版本建立主从关系,由低版本升级到pika3.1.0可以参照wiki进行升级(如何升级到Pika3.0如何升级到Pika3.1)
  • 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
  • 为了保证服务的稳定,建议所有用户升级至3.0.11
  • 3.0仍会继续维护,目前已经彻底停止对2.X的支持

项目简介

Pika is a nosql compatible with redis, it is developed by Qihoo's DBA and infrastructure team

发行版本 63

v3.5.0

全部发行版

贡献者 65

全部贡献者

开发语言

  • C++ 97.1 %
  • Shell 0.9 %
  • C 0.9 %
  • Makefile 0.8 %
  • Dockerfile 0.3 %