Skip to content

Releases: OpenAtomFoundation/pika

v3.5.2-alpha

01 Dec 10:34
Compare
Choose a tag to compare

v3.5.2

New features

bugfix

  • Fixed coredump issue when using SETRANGE command in Pika. #2125 @chejinge

  • Fixed full replication issue caused by deleting Clearreplicationid from binlog. #2136 @Mixficsol

  • Modified lock granularity to improve binlog writing performance in Pika. #2129 @wangshao1

  • Added redis-copy traffic replication tool. #2044 @Mixficsol

  • Fixed potential data overflow issue in complex data types member variables. #2016 @u6th9d

  • Fixed incorrect return value issue in decr command. #2092 @dingxiaoshuai123

  • Fixed issue where SETRANGE and SETBIT commands did not retain the original key's expiration time. #2095 @u6th9d

v3.5.1

28 Sep 02:45
e564344
Compare
Choose a tag to compare

New features

  • Slow log Adds statistics on queue waiting time #1997 @wangshao1

  • ReplicationID is used for primary/secondary replication #1951 @Mixficsol

  • WAL uses the disablewal command to support dynamic shutdown #2015 @Mixficsol

  • The number of threads flushed and the number of threads compaction dynamically adjust into one #2014 @Tianpingan

  • The RocksDB version was upgraded to v8.3.3 #1999 @dingxiaoshuai123

  • Added documentation for configuring Pika in macOS environment #2003 @klboke

  • Added the ability to periodically print the length of the work queue to quickly locate problems when the queue is blocked #1978 @Tianpingan

  • Added an indicator to detect the entire cluster using a pika_exporter #1953 @chenbt-hz

  • Realize automatic registration of Pika service on K8s environment, and automatically register at startup, so as to realize self-organization of cluster #1931 @machinly

bugfix

  • Reduces unnecessary log printing by the exporter, reducing CPU utilization #1945 @Mixficsol

  • The sentinel mechanism has been upgraded to carry out logical deletion of primary nodes that fall offline #1949 @Mixficsol

  • Adjust the rate_limit parameter to fix the situation that RPS is 0 during pressure measurement #2009 @chejinge

  • Fixed the logical determination of empty path when traversing data files in INFODATA command #1996 @Mixficsol

  • Improved the description of some missing parts of the document #1962 @baerwang

  • Use make-j to improve build speed #1933 @xiezheng-XD

  • Fixed an issue where large burrs appeared on the Codis line #2016 @chejinge

  • Fixed an issue where tools could not be compiled in macOS #2011 @A2ureStone

v3.5.0

24 Aug 04:01
6cb413c
Compare
Choose a tag to compare

Major features

1. Removal of Rsync

  • In v3.5.0, we removed Rsync and replaced it with a self-developed full synchronization scheme, which has the features of breakpoint continuation, rate limit, file inspection and so on

2. Compatibility with More Redis Commands

  • More Redis commands are compatible and supported in v3.5.0.

3. RocksDB Version Upgrade and Tiered Compression

  • In v3.5.0, we upgraded RocksDB to version v8.1.1 and implemented tiered compression.

4. Support for BlobDB:

  • In v3.5.0, we added support for BlobDB KV separation.

5. Cluster Mode based on Codis

  • In v3.5.0, we introduced the Codis Cluster Mode and added support for the command to migrate Codis slots.

6.Observability

  • In v3.5.0, we introduced the pika_exporter tool to monitor the observability metrics of Pika. Subsequently, we added several new metrics to enhance Pika's observability.

7.Cloud-Native Deployment

  • In v3.5.0, we introduced an MVP version of pika-operator, which focuses on enabling the quick deployment of a single-instance Pika service on Kubernetes.

8.Cross-platform compilation

  • In v3.5.0, Pika supports cross-platform compilation and can be compiled and used on MacOS, CentOS, and Ubuntu platforms.

Features

  • Added automatic rate limiting for "compact" operation to reduce its impact on the latency of upper-layer data read and write operations. #1374 @wanghenshui
  • Introduced the "aof_to_pika" toolset for data conversion. #1340 @Axlgrep
  • Implemented the printing of the Pika logo. #1787 @Mixficsol
  • Optimized certain code portions using clang-tidy. #1701 #1730 @longfar-ncy
  • Refactored C++98-style code to C++11-style following C++ coding guidelines. #1684 @chejinge
  • Introduced support for the "snappy" library. #1216 @kernelai
  • Added CLA (Contributor License Agreement) file. #1260 @kernelai
  • Extended memory-related configuration options to support units in K, M, or G. #1307 @lqxhub
  • Added libunwind as a dependency library. #1316 @kernelai
  • Included a compilation script for Pika. #1356 @lqxhub
  • Added "rate-limiter-bandwidth" option to pika.conf for rate limiting. #1272 @wanghenshui
  • Enhanced the "info" command by adding "redis_version" information. #1403 @wanghenshui
  • Provided CMake support for aof_to_pika tool. #1436 @A2ureStone
  • Introduced clang-formatted shell scripts. #1448 @lqxhub
  • Added a configuration option to disable the compilation of command docs. #1642 @tedli
  • Provided CMake support for benchmark_client, binlog_sender, manifest_generator, rdb_to_pika, txt_to_pika, pika_to_txt, and pika_port. #1451 @A2ureStone

Bugfixes

  • Fixed coredump caused by incompatible CPU instruction sets. #1812 @chejinge
  • Fixed abnormal exit issue in the Monitor command. #1804 @Mixficsol
  • Fixed incomplete configuration overwrite. #1800 @yaoyinnan
  • Fixed CTest tests on MacOS. #1789 #1721 #1782 @tedli @Mixficsol
  • Fixed loading master-run-id from the configuration file during process startup, which caused the need for re-syncing historical data on slave nodes. #1778 @luky116
  • Fixed format error in overrides option during Pika single test. #1768 @A2ureStone
  • Fixed command to retrieve INFO xxx (INFO data, INFO stats) by index instead of using INFO ALL. #1762 @yaoyinnan
  • Improved instantaneous_metric to collect network metrics every 5 seconds. #1757 @yaoyinnan
  • Improved config get to return complete parameters. #1593 @luky116
  • Fixed possible empty slot issue. #1712 @Mixficsol
  • Fixed some bugs related to version selection in the makefile. #1714 @luky116
  • Fixed bug in executing HSET for the first time. #1710 @Mixficsol
  • Fixed the issue of binlog offset on slave nodes being greater than master nodes, causing TrySync failure. #1681 @luky116
  • Fixed a NOAUTH error test, where any command would give an error when AUTH is required. #1680 @hqh-cell
  • Fixed the issue of binlog files not being automatically cleaned up when exceeding the limit. #1679 @luky116
  • Fixed issues with LPUSHX and RPUSHX multi-element insertion. #1525 @ForestLH
  • Fixed error in executing the BGSAVE command. #1523 @Brokenice0415
  • Fixed the use of io_uring when closing RocksDB to prevent errors during linking. #1489 @lqxhub
  • Fixed MacOS environment Pika compilation warnings. #1740 @Mixficsol
  • Fixed error message for unsupported commands, adapted for go-redis. #1244 @wgqi1126
  • Fixed a protobuf3 compilation warning. #1267 @wanghenshui
  • Fixed bugs in EXISTS and DEL commands in sharding mode. #1277 @wanghenshui
  • Fixed rsync auth bug. #1278 @wanghenshui
  • Fixed rewrite result format to comply with Redis standards. #1339 @lqxhub
  • Fixed SET NX/XX return values to match Redis behavior. #1343 @gtygo
  • Fixed missing pika_master_link_status and pika_slave_priority indicators in exporter. #1726 @Mixficsol
  • Fixed potential coredump when Pika uses too many file descriptors, preventing it from exceeding the ulimit. #1346 @kernelai
  • Fixed initialization of group members in classes to prevent unexpected closure of the connection between redis-cli and Pika. #1390 @AlexStocks
  • Fixed delete_dir snprintf bug. #1400 @wanghenshui
  • Fixed thread num limitation. #1401 @wanghenshui
  • Fixed redis-benchmark to get config from Pika. #1402 @wanghenshui
  • Fixed initialization of class members. #1406 @AlexStocks
  • Fixed issues in Pika's master-slave synchronization tests on MacOS. #1776 @Mixficsol
  • Fixed NULL to nullptr. [#...
Read more

v3.5.0-alpha

05 Aug 02:31
b3c5268
Compare
Choose a tag to compare

Major features

1. Removal of Rsync

  • In v3.5.0-alpha, we removed Rsync and replaced it with a self-developed full synchronization scheme, which has the features of breakpoint continuation, rate limit, file inspection and so on

2. Compatibility with More Redis Commands

  • More Redis commands are compatible and supported in v3.5.0-alpha.

3. RocksDB Version Upgrade and Tiered Compression

  • In v3.5.0-alpha, we upgraded RocksDB to version v8.1.1 and implemented tiered compression.

4. Support for BlobDB:

  • In v3.5.0-alpha, we added support for BlobDB KV separation.

5. Cluster Mode based on Codis

  • In v3.5.0-alpha, we introduced the Codis Cluster Mode and added support for the command to migrate Codis slots.

6.Observability

  • In v3.5.0-alpha, we introduced the pika_exporter tool to monitor the observability metrics of Pika. Subsequently, we added several new metrics to enhance Pika's observability.

7.Cloud-Native Deployment

  • In v3.5.0-alpha, we introduced an MVP version of pika-operator, which focuses on enabling the quick deployment of a single-instance Pika service on Kubernetes.

8.Cross-platform compilation

  • In v3.5.0-alpha, Pika supports cross-platform compilation and can be compiled and used on MacOS, CentOS, and Ubuntu platforms.

Features

  • Added automatic rate limiting for "compact" operation to reduce its impact on the latency of upper-layer data read and write operations. #1374 @wanghenshui
  • Introduced the "aof_to_pika" toolset for data conversion. #1340 @Axlgrep
  • Implemented the printing of the Pika logo. #1787 @Mixficsol
  • Optimized certain code portions using clang-tidy. #1701 #1730 @longfar-ncy
  • Refactored C++98-style code to C++11-style following C++ coding guidelines. #1684 @chejinge
  • Introduced support for the "snappy" library. #1216 @kernelai
  • Added CLA (Contributor License Agreement) file. #1260 @kernelai
  • Extended memory-related configuration options to support units in K, M, or G. #1307 @lqxhub
  • Added libunwind as a dependency library. #1316 @kernelai
  • Included a compilation script for Pika. #1356 @lqxhub
  • Added "rate-limiter-bandwidth" option to pika.conf for rate limiting. #1272 @wanghenshui
  • Enhanced the "info" command by adding "redis_version" information. #1403 @wanghenshui
  • Provided CMake support for aof_to_pika tool. #1436 @A2ureStone
  • Introduced clang-formatted shell scripts. #1448 @lqxhub
  • Added a configuration option to disable the compilation of command docs. #1642 @tedli
  • Provided CMake support for benchmark_client, binlog_sender, manifest_generator, rdb_to_pika, txt_to_pika, pika_to_txt, and pika_port. #1451 @A2ureStone

Bugfixes

  • Fixed coredump caused by incompatible CPU instruction sets. #1812 @chejinge
  • Fixed abnormal exit issue in the Monitor command. #1804 @Mixficsol
  • Fixed incomplete configuration overwrite. #1800 @yaoyinnan
  • Fixed CTest tests on MacOS. #1789 #1721 #1782 @tedli @Mixficsol
  • Fixed loading master-run-id from the configuration file during process startup, which caused the need for re-syncing historical data on slave nodes. #1778 @luky116
  • Fixed format error in overrides option during Pika single test. #1768 @A2ureStone
  • Fixed command to retrieve INFO xxx (INFO data, INFO stats) by index instead of using INFO ALL. #1762 @yaoyinnan
  • Improved instantaneous_metric to collect network metrics every 5 seconds. #1757 @yaoyinnan
  • Improved config get to return complete parameters. #1593 @luky116
  • Fixed possible empty slot issue. #1712 @Mixficsol
  • Fixed some bugs related to version selection in the makefile. #1714 @luky116
  • Fixed bug in executing HSET for the first time. #1710 @Mixficsol
  • Fixed the issue of binlog offset on slave nodes being greater than master nodes, causing TrySync failure. #1681 @luky116
  • Fixed a NOAUTH error test, where any command would give an error when AUTH is required. #1680 @hqh-cell
  • Fixed the issue of binlog files not being automatically cleaned up when exceeding the limit. #1679 @luky116
  • Fixed issues with LPUSHX and RPUSHX multi-element insertion. #1525 @ForestLH
  • Fixed error in executing the BGSAVE command. #1523 @Brokenice0415
  • Fixed the use of io_uring when closing RocksDB to prevent errors during linking. #1489 @lqxhub
  • Fixed MacOS environment Pika compilation warnings. #1740 @Mixficsol
  • Fixed error message for unsupported commands, adapted for go-redis. #1244 @wgqi1126
  • Fixed a protobuf3 compilation warning. #1267 @wanghenshui
  • Fixed bugs in EXISTS and DEL commands in sharding mode. #1277 @wanghenshui
  • Fixed rsync auth bug. #1278 @wanghenshui
  • Fixed rewrite result format to comply with Redis standards. #1339 @lqxhub
  • Fixed SET NX/XX return values to match Redis behavior. #1343 @gtygo
  • Fixed missing pika_master_link_status and pika_slave_priority indicators in exporter. #1726 @Mixficsol
  • Fixed potential coredump when Pika uses too many file descriptors, preventing it from exceeding the ulimit. #1346 @kernelai
  • Fixed initialization of group members in classes to prevent unexpected closure of the connection between redis-cli and Pika. #1390 @AlexStocks
  • Fixed delete_dir snprintf bug. #1400 @wanghenshui
  • Fixed thread num limitation. #1401 @wanghenshui
  • Fixed redis-benchmark to get config from Pika. #1402 @wanghenshui
  • Fixed initialization of class members. #1406 @AlexStocks
  • Fixed issues in Pika's master-slave synchronization tests on MacOS. #1776 [@Mixficsol](https://gi...
Read more

v3.4.1[abandoned]

07 May 10:46
Compare
Choose a tag to compare

This version has many bugs and is unstable, we have abandoned it. Use v3.3.6 instead.

新增功能:

  • 支持quit命令。
  • 支持gcc 9.4.0 编译。
  • 多阶段编译减少docker image size。
  • release包对zlib、lz4、zstd压缩算法支持。

bugfix

  • 修复线程池惊群问题。
  • 修复pubsub 出现coredump的问题。
  • 修复max-write-buffer-num 无法静态配置的问题。
  • 修复max-cache-statistic-keys 配置项重复的问题。

注意事项:

  • 分片模式和经典模式不可兼容,请在启动时候配置好启动模式
  • 副本一致性可配置功能目前只支持分片模式。
  • 分片模式下取消slaveof 命令,使用pkcluster slotsslaveof 替代,详细见Pika分片命令
  • 经典模式下取消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数据重新导入。

v3.4.0[abandoned]

01 Dec 03:51
Compare
Choose a tag to compare

This version has many bugs and is unstable, we have abandoned it. Use v3.3.6 instead.

注意:

这是个实验性质的版本,360内部没有在生产环境部署。请优先使用3.3.6版本。

新增功能:

  • sharding模式下内置pika proxy组件,自动代理客户端请求到响应slot节点。
  • proxy支持根据业务压力配置后端连接数。
  • proxy 支持后端连接自动保活机制。
  • proxy 支持slot 共享后端连接。
  • proxy 支持客户端pipline功能。
  • proxy 支持slot 主从切换,slot 数据迁移功能。
  • proxy 支持hash tag功能。用户可以通过hash tag 把key存储到指定的slot。
  • pika 支持protocol buf 管理接口。

注意事项:

  • 分片模式和经典模式不可兼容,请在启动时候配置好启动模式
  • 副本一致性可配置功能目前只支持分片模式。
  • 分片模式下取消slaveof 命令,使用pkcluster slotsslaveof 替代,详细见Pika分片命令
  • 经典模式下取消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.3.0 以后的版本包含了日志复制一致性的功能,建议使用该功能的用户使用版本3.3.6。
  • 为了保证服务的稳定,建议不使用日志复制一致性的用户升级至3.2.9。
  • 目前停止对3.0版本的维护

v3.3.6

23 Oct 08:37
Compare
Choose a tag to compare

Do not use the sharding mode. We have abandoned this mode.

新增功能:

  • 增加在分片模式下计算slot时对hash tag的支持。
  • 增加在sharding模式下支持pkscanrange 、pkrscanrange、lpushrpop命令。客户端需要指定hash tag来保证所有操作在同一个slot上。
  • 增加rocksdb memtable 配置预分配内存大小的接口。

Bug修复:

  • 修复分片模式下,配置slot num非2的幂次数目时,计算slot hash值与codis不一致的问题。
  • 修复哨兵使用pubsub命令可能导致coredump的问题。

注意事项:

  • 分片模式和经典模式不可兼容,请在启动时候配置好启动模式
  • 副本一致性可配置功能目前只支持分片模式。
  • 分片模式下取消slaveof 命令,使用pkcluster slotsslaveof 替代,详细见Pika分片命令
  • 经典模式下取消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.3.0 以后的版本包含了日志复制一致性的功能,建议使用该功能的用户使用本版本。
  • 为了保证服务的稳定,建议不使用日志复制一致性的用户升级至3.2.9。
  • 目前停止对3.0版本的维护

V3.3.5

07 Jul 08:35
Compare
Choose a tag to compare

性能优化:

  • 针对zcout/zrangebyscore/zremrangebyscore/zrank命令性能优化。感谢@yurongliao的贡献

Bug修复:

  • 修复pink中holy thread错误关闭文件描述符导致rocksdb中sst文件 bad file description。建议3.2以后的版本升级到本版本。感谢@su47flying的贡献。

注意事项:

  • 分片模式和经典模式不可兼容,请在启动时候配置好启动模式
  • 副本一致性可配置功能目前只支持分片模式。
  • 分片模式下取消slaveof 命令,使用pkcluster slotsslaveof 替代,详细见Pika分片命令
  • 经典模式下取消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.3.0 以后的版本包含了日志复制一致性的功能,建议使用该功能的用户使用本版本。
  • 为了保证服务的稳定,建议不使用日志复制一致性的用户升级至3.2.9。
  • 3.0仍会继续维护,目前已经彻底停止对2.X的支持

v3.3.4

12 Jun 02:20
Compare
Choose a tag to compare

Bug修复:

  • 修复命令info replication中lag 计算溢出的问题。
  • 修复因网络丢包造成binlog同步阻塞未及时重连的问题。
  • 修复网络割接场景下,同步不能自动恢复的问题。
  • 修复分片模式下,不支持大写pkcluster系列命令的问题。

注意事项:

  • 分片模式和经典模式不可兼容,请在启动时候配置好启动模式
  • 副本一致性可配置功能目前只支持分片模式。
  • 分片模式下取消slaveof 命令,使用pkcluster slotsslaveof 替代,详细见Pika分片命令
  • 经典模式下取消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.3.0 以后的版本包含了日志复制一致性的功能,建议使用该功能的用户使用本版本。
  • 为了保证服务的稳定,建议不使用日志复制一致性的用户升级至3.2.9。
  • 3.0仍会继续维护,目前已经彻底停止对2.X的支持

v3.2.9-beta

05 Jun 10:15
Compare
Choose a tag to compare

Rocksdb更新:

  • v3.2.9 基础上对Rocksdb 进行更新,Rocksdb 版本从5.9.2 升级至5.18.3,升级后的Rocksdb更加稳定。同时,所有原Pika接口保持不变,所有原Blackwidow 接口保持不变,继承3.2.9 以及之前所有优化。

注意事项:

  • 分片模式和经典模式不可兼容,请在启动时候配置好启动模式
  • 副本一致性可配置功能目前只支持分片模式。
  • 分片模式下取消slaveof 命令,使用pkcluster slotsslaveof 替代,详细见Pika分片命令
  • 经典模式下取消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.2.9
  • 3.0仍会继续维护,目前已经彻底停止对2.X的支持