Skip to content

Releases: OpenAtomFoundation/pika

v2.3.7

14 Aug 11:05
0d8bf02
Compare
Choose a tag to compare

Bug修复:

  • 修复LRange不释放Snapshots导致磁盘空间无法正常回收的问题
  • 修复一主多从场景下,某一从库网络不稳定可能造成所有从库中断同步并无法重建同步关系的问题

注意事项

  • Pika 2.3.3版本添加了主从Server ID认证机制,无法之前的所有版本无法建立主从关系,升级请注意!
  • pika 2.3版本仅支持做2.3+版本的主从,请勿将pika 2.2和pika2.3建立主从
  • pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
  • 仅支持从2.1.0+版本平滑升级到2.3.0,如果从更早版本升级,请看2.1.0的注意事项

v3.2.0

22 Jul 05:57
7aba4c0
Compare
Choose a tag to compare

新特性:

Bug修复:

  • 修复pubsub线程退出时崩溃的问题
  • 修复多线程同时执行config rewrite命令导致崩溃的问题
  • 修复经典模式下pika级联(即是主又是从)无法同步binlog的问题
  • 修复高版本向低版本同步时,低版本执行不支持的命令导致崩溃的问题

注意事项:

  • 分片模式和经典模式不可兼容,请在启动时候配置好启动模式

  • 经典模式下取消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.10

  • 3.0仍会继续维护,目前已经彻底停止对2.X的支持

v3.1.1

27 Jun 09:10
d9d8dff
Compare
Choose a tag to compare

Bug修复

  • 修复配置文件中配置了compact-cron但是不生效的问题
  • 修复同步时第一个binlog文件头部被填充了0x20,再读取这个文件时解析可能导致崩溃的问题

优化 & 新特性:

  • 代码层面优化了主从同步状态机,提升了同步的效率
  • 移除了submodule下的protobuf库,编译的时候还是用系统的protobuf
  • 新增dbslaveof命令用来指定某个db的binlog偏移量进行同步(多db版本部分命令变化文档请参考Pika3.1.0多库版命令、参数变化参考

注意事项

  • 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.9
  • 3.0仍会继续维护,2.X不再维护,7月彻底停止对2.X的支持

v3.0.10

28 Jun 03:37
Compare
Choose a tag to compare

Bug修复:

  • 修复BinlogParser未经初始化导致解析同步出错的问题
  • 修复同步时第一个binlog文件头部被填充了0x20,再读取这个文件时解析可能导致崩溃的问题

注意事项

  • pika3.0.10暂不支持pika-hub
  • pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
  • pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
  • 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
  • 为了保证服务的稳定,建议所有3.0.x用户升级至3.0.10,2.X用户升级至2.3.6或3.0.10

v3.1.0

16 May 10:21
3b51764
Compare
Choose a tag to compare

Bug修复

  • 修复了编译无tcmalloc时同步可能无法创建的问题

优化 & 新特性:

注意事项

  • 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.9
  • 3.0仍会继续维护,2.X不再维护,7月彻底停止对2.X的支持

v3.0.9

08 May 03:04
8f8cf42
Compare
Choose a tag to compare

优化 & 新特性:

  • 对ZSet数据结构的索引信息进行压缩处理,同等数据量条件下大幅度降低磁盘和内存占用

注意事项

  • pika3.0.9暂不支持pika-hub
  • pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
  • pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
  • 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
  • 为了保证服务的稳定,建议所有3.0.x用户升级至3.0.9,2.X用户升级至2.3.6或3.0.9

v3.0.8

07 Mar 08:47
db5ac56
Compare
Choose a tag to compare

Bug修复:

  • 修复大压力场景下执行Monitor命令的连接会断开的问题
  • 修复Set命令中的EX、PX遇到非法参数时返回结果和Redis不一致的问题
  • 修复slowlog-write-errorlog参数无法将来自同步的慢操作记录到日志的问题
  • 修复Set命令中的PX、EX及Setex、PSetex命令在主从同步延迟较大时会造成相关Key超时时间不一致的问题

优化 & 新特性:

  • info keyspace增加统计耗时展示
  • compact-cron增加星期配置,格式请参考配置文件
  • info keyspace和compact不再允许同时执行,避免同时执行造成数据体积暂时膨胀较大问题

注意事项

  • pika3.0.8暂不支持pika-hub
  • pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
  • pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
  • 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
  • 为了保证服务的稳定,建议所有3.0.x用户升级至3.0.8,2.X用户升级至2.3.6或3.0.8

v3.0.7

24 Jan 09:12
Compare
Choose a tag to compare

Bug修复:

  • 修复HMGet已过期的key时行为与Redis不一致的问题
  • 修复maxmemory配置项的值太大会造成展示溢出的问题
  • 修复从库关闭readonly情况下执行bgsave/flushall可能导致整个实例锁死的问题
  • 修复了某一客户端执行耗时极长操作(例如keys *)时可能导致连接在对应线程上的其他客户端全部阻塞的问题

优化 & 新特性:

  • 优化网络库redis协议解析代码,增加代码可读性
  • 提高pika binlog parser的处理性能,支持批量binlog的解析
  • 对网络库进行改造,并且添加了线程池用于处理写db以及写binlog等耗时操作,有效降低延迟,部分接口性能提升5%~20% (配置文件中新添加thread-pool-size项用于控制线程池大小)

注意事项

  • pika3.0.7暂不支持pika-hub
  • pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
  • pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
  • 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。
  • 为了保证服务的稳定,建议所有3.0.x用户升级至3.0.7,2.X用户升级至2.3.6或3.0.7

v3.0.6

28 Dec 09:47
97a7526
Compare
Choose a tag to compare

Bug修复:

  • 修复了monitor中pika不显示db号的问题
  • 修复了从库同步异常但可能状态显示仍为up的问题
  • 修复了执行expireat key 0时pika行为和redis不一致的问题
  • 修复了nemo_to_blackwidow迁移遇到key数量特别巨大的场景进度展示会溢出的问题
  • 修复了执行slaveof ip port force时如果恰好正在执行zrevrange可能导致Pika崩溃的问题
  • 修复了info中slave_read_only状态值不为0/1而为yes/no可能会影响部分监控系统的数据获取的问题

优化 & 新特性:

  • config get允许通过*进行模糊匹配
  • 对binlog写逻辑进行优化,效率有一定提高
  • 对zrevrange,zrevrangebyscore进行了优化,性能有一定提高
  • info keyspace 1 现在能够统计带有expire属性的key并进行展示
  • 为了适应越来越多的万兆环境,调整db-sync-speed参数,上限从125MB提高到1024MB
  • 重写了config rewrite,目前功能已与redis一致,之前部分参数不能正常rewrite的问题也已修复
  • 对引擎层进行优化,对不同的操作进行统计,在合适的时候触发小范围的key级别compact,尽可能的降低磁盘碎片率及碎片对性能的影响,目前相关参数max-cache-statistic-keys,small-compaction-threshold允许通过config set动态调整,该功能默认关闭

注意事项

  • pika3.0.6暂不支持pika-hub
  • pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
  • pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
  • 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。

v3.0.5

22 Nov 06:45
f02f9e9
Compare
Choose a tag to compare

Bug修复:

  • 修复config set对某些配置项允许设置非法参数的问题
  • 修复mset和msetnx命令某些场景下只能部分同步到从库的问题
  • 修复TTL命令在某些场景下可能会返回已经失效key过期时间的问题
  • 修复mget和hmget命令在对应value为空串时返回结果和redis不一致的问题
  • 修复执行appen, decrby, incrby, incrbyfloat会清除对应key过期属性的问题
  • 修复某些场景下执行pubsub命令会阻塞Pika一个线程直到重启才可恢复的问题

优化 & 新特性:

  • 双主模式下支持通过slaveof no one来断开同步
  • 优化部分多数据结构的接口,效率有不同程度的提升
  • 取消read-only参数、命令, 增加slave-read-only参数,作用与redis完全一致
  • 通过info keyspace 1统计key数量时将实例中可淘汰key数量也进行统计,方便观察
  • 对引擎层进行优化,对不同的操作进行统计,在合适的时候触发小范围的key级别compact,尽可能的降低磁盘碎片率及碎片对性能的影响,实验性功能,默认关闭

注意事项

  • pika3.0.5暂不支持pika-hub
  • pika从2.1.4推荐需要使用gcc 4.8+版本编译,更新gcc后执行make distclean && make编译
  • pika 3.0.0版本替换了数据引擎以及对binlog做了升级,由低版本升级到pika3.0.0可以参照wiki进行升级(如何升级到Pika3.0)
  • 由于zset精度的优化(自pika3.0.0起zset精度已与redis一致),如果你在低版本的pika(<3.0.0)中使用了geo功能,请在将其升级到pika3.0时不要直接使用nemo_to_blackwidow工具进行geo相关zset(其它结构的数据不受影响)数据的迁移,否则由于精度差异问题,迁移后的geo数据将损坏,建议使用客户端将geo相关zset数据重新导入。