Pika到GeminiDB Redis的迁移
Pika是一个可持久化的大容量Redis存储服务,解决了Redis由于存储数据量巨大而导致内存不够用的容量瓶颈。但其集群管理功能较为薄弱,需要使用twemproxy或者codis实现静态数据分片。同时由于数据全部存储在磁盘中,相比于社区版Redis,性能明显下降。
GeminiDB Redis接口是一款兼容Redis生态的云原生NoSQL数据库,基于共享存储池的多副本强一致机制,保证数据的安全可靠。GeminiDB Redis接口实现了冷热分离,解决了缓存(cache)与数据库(Data Base,DB)之间交互访问的问题,提高了程序可读性与程序运行效率。同时对RocksDB进行深度定制,实现秒级分裂弹性扩容,扩缩容无需搬迁数据,快速而平滑。通过proxy代理,使上层业务可以不感知内核处理扩缩容过程中的数据迁移。
本章节主要介绍Pika到GeminiDB Redis接口的迁移方案。
迁移原理
pika-port伪装成Pika的从节点运行,通过主从复制的方式进行数据迁移。Pika主节点通过比较pika-port和自己的binlog偏移量判断做全量迁移还是增量迁移。如果需要做全量迁移,Pika主节点会将全量数据快照发送给pika-port,pika-port将解析后的快照数据发送给GeminiDB Redis。全量迁移结束后进入增量迁移,pika-port将增量数据解析后以redis命令的形式发送给GeminiDB Redis。
使用须知
- Pika迁移工具伪装成源端Pika的从节点,只读取全量和增量数据,无数据受损风险。
- 源端增加了和Pika迁移工具的主从同步流程,可能会影响源端性能。
- 全量和增量结合迁移可以不停服,业务切入GeminiDB Redis时短暂停服。
前提条件
部署迁移工具pika-port,确保源端Pika实例和目标端GeminiDB Redis实例网络互通。
操作步骤
如需进行Pika到GeminiDB Redis的迁移,您可以在管理控制台右上角,选择“工单 > 新建工单”,联系客服进行处理。
迁移性能参考
- 环境:Pika(单节点)和pika-port同时部署在华为云8U32GB的弹性云服务器上,目标端为8U16GB,3节点GeminiDB Redis实例。
- 预置数据:使用memtier_benchmark工具预置200GB数据。
- 迁移性能:约50000qps。