Skip to content

v2.1.0

Compare
Choose a tag to compare
@KernelMaker KernelMaker released this 25 Jul 03:52
· 893 commits to master since this release

Bug修复:

  1. monitor修复二进制的显示(转为16进制)
  2. zcard命令无法在从库执行的bug(检查其它接口是否存在相同问题)、select变成写入命令的bug
  3. 修复由于后台执行info keyspace 1 而导致pika无法正常shutdown的问题
  4. 修复zrange系列范围问题
  5. 修复scan无法对多数据结构使用match的问题

优化:

  1. 内部info信息继续修正,config get/set修正,目前与redis共有部分保持一致,并且新增了用来查看引擎内存占用(近似值)的db_memtable_usage和db_tablereader_usage信息,分别对应引擎的memtable大小和indexblock缓存大小,注意还有一个used_memory,该信息主要是配合公司dba同事进行redis监控的兼容,具体值是db_size对应的字节数,并无实际意义
  2. 新版备份功能(秒级备份),大幅度提高备份及全同步的速度
  3. slave在尝试同步失败后,出连接失败重试之外,其他从主返回的错误都进入down状态,不再重试;
  4. log信息显示优化,目前包含INFO、ERROR等级,推荐使用INFO
  5. 端口占用间隔由100改成1000
  6. 启动后如果发现open files配置太小,会尝试修改为maxclients+5000的大小并打出日志,修改失败则报错退出
  7. 自动获取default网卡ip,不写死eth0;
  8. 新增info keyspace off命令来支持手动停止后台keyspace扫描
  9. binlog文件(write2file)增加时间戳信息,提供新旧binlog的转换工具
  10. binlog文件(write2file)的配套解析、导入、导出、紧急修复工具
  11. 新增max-cache-files配置项,用来配置引擎缓存的tablecache的数量,默认是5000,可以通过调小来是pika内存占用变小,不过会影响性能__(慎用)__

注意事项:

由于pika 2.1叫之前版本在配置文件和binlog格式上存在着不兼容,如果继续使用老的版本会导致pika 2.1无法正常使用,在使用前需要做如下准备:

配置文件:

使用2.1的配置文件去覆盖老版本的配置文件

Binlog转换工具:

  1. 编译tools/binlog_tools
  2. 使用编译生成的binlog_parse来完成新旧Binlog的转换,具体用法:./binlog_parser -c old2new -i old_binlog_path/write2file0,write2file1,write2file3... -o new_binlog_path , -i 旧路径后跟需要转换的write2file文件名,一般情况下仅需要转换后几个最大的write2file文件即可,转换成功后,将new_binlog_path下的新版binlog和manifest文件拷回覆盖old_binlog_path`目录即可正常启动

Binlog回放工具:

pika 2.1 binlog带有时间戳,因此可以根据指定时间戳根据binlog恢复对应时间段内的数据到某个pika实例。

  1. 工具目录:pika/tools/binlog_tools/binlog_sender

  2. 使用参数:

    • -h 显示帮助
    • -a 口令
    • -t 日志类型,old 或new
    • -i pika实例的ip
    • -p pika实例的port
    • -n 输入的binlog的路径
    • -f 要转换的binlog号
    • -s 规定的起始时间点, 默认: '2001-00-00 00:59:01'
    • -e 规定的结束时间点, 默认: '2100-01-30 24:00:01'
  3. 样例: ./binlog_sender -n /data2/wangwenduo/newlog/ -t new -i 127.0.0.1 -p 10221 -s '2001-10-11 11:11:11' -e '2020-12-11 11:11:11' -f 526,527

  4. 注意:因为依次发送binlog,过程中可能会丢部分请求。因此当使用binlog_sender回放后,不要删掉对应的文件以防丢数据