SSDB是一款使用C/C++语言开发的高性能NoSQL数据库,和Redis具有相似的API,支持KV,list,map(hash),zset(sorted set),qlist(队列)等数据结构,因此得到了广泛的应用。SSDB是一个持久化的KV存储系统,底层使用leveldb作为存储引擎。其业务直接与LevelDB交互,Compaction等操作会对业务读写造成直接的影响。 GeminiDB Redis是一款兼容Redis生态的云原生NoSQL数据库,基于共享存储池的多副本强一致机制,以保证数据的安全性和可靠性。GeminiDB Redis使用RocksDB作为存储引擎,其性能与leveldb相比有了很大的提升, 并解决了leveldb主动限制写的问题,同时实现了冷热分离,减小了存储层的操作对性能造成的影响。
迁移原理
ssdb-port作为源端SSDB数据库的主节点的从节点(replica)运行,通过主从复制的方式进行数据迁移。将获取到的数据解析、转换为Redis支持的格式,并发送到配置文件中指定的Redis实例,迁移过程如下图所示。全量同步完成后,SSDB中新增的数据也会同步到Redis实例中。
图迁移原理
使用须知
- ssdb-port作为SSDB主节点的从节点,只读取全量和增量数据,无数据受损风险。
- 由于在源端使用ssdb-port迁移工具,源端SSDB性能会受到一定的影响。
- 全量迁移和增量迁移可以不停服,数据全部迁入GeminiDB Redis后需要短暂停服。
前提条件
在GeminiDB Redis实例所在的VPC网络中创建ECS实例,部署迁移工具ssdb-port,保证源端SSDB实例和目标端GeminiDB Redis实例网络互通。
操作步骤
如需进行Redis到GeminiDB Redis的迁移,您可以在管理控制台右上角,选择“工单 > 新建工单”,联系技术支持进行处理。
迁移性能参考
- 环境:源端SSDB和ssdb-port同时部署在4U16GB的弹性云服务器上,目标端为8U16GB,3节点GeminiDB Redis实例。
- 预置数据:使用memtier_benchmark工具预置100GB数据。
- 迁移性能:约3000qps。