名称:

Berry

位置:

pika bin目录下

目的:

方便Redis数据到Pika的迁移

背景:

Pika兼容Redis协议,所以任何使用于Redis的迁移工具同样也适用于Pika,Redis-cli本身提供了一个pipe参数来完成Redis到Redis的数据迁移。该工具的实现方式为读取待迁移Redis的aof文件并批量发送到目的Redis。Berry借鉴这种方式,并增加了如下改进:

  • 迁移过程中,不断读取aof新增内容
  • 错误输出
  • 线程并行方式代替串行方式,提高迁移效率

实现:

reader线程

  • tail -f 的方式读取指定aof文件中的内容
  • 根据设定的单次发送长度拼装成块,依次来减少网络通信
  • 将要发送的块压入队列

sender线程

  • 从队列中读取一个发送块
  • 发送到目的服务器
  • 处理reply信息并做统计

使用:

  1. Parameters:
  2. -i: aof file
  3. -h: the target host
  4. -p: the target port
  5. -a: the target auth
  6. -v: show more information
  7. Example: ./aof_to_pika -i ./appendonly.aof -h [pika_ip] -p [pika_port] -a abc -v

原文: https://github.com/Qihoo360/pika/wiki/Redis%E5%88%B0pika%E8%BF%81%E7%A7%BB%E5%B7%A5%E5%85%B7