Pika是一個可持久化的大容量Redis存儲服務,解決了Redis由于存儲數據量巨大而導致內存不夠用的容量瓶頸。但其集群管理功能較為薄弱,需要使用twemproxy或者codis實現靜態數據分片。同時由于數據全部存儲在磁盤中,相比于社區版Redis,性能明顯下降。
GeminiDB Redis是一款兼容Redis生態的云原生NoSQL數據庫,基于共享存儲池的多副本強一致機制,保證數據的安全可靠。GeminiDB Redis實現了冷熱分離,解決了緩存(cache)與數據庫(Data Base,DB)之間交互訪問的問題,提高了程序可讀性與程序運行效率。同時對RocksDB進行深度定制,實現秒級分裂彈性擴容,擴縮容無需搬遷數據,快速而平滑。通過proxy代理,使上層業務可以不感知內核處理擴縮容過程中的數據遷移。
遷移原理
pika-port偽裝成Pika的從節點運行,通過主從復制的方式進行數據遷移。Pika主節點通過比較pika-port和自己的binlog偏移量判斷做全量遷移還是增量遷移。如果需要做全量遷移,Pika主節點會將全量數據快照發送給pika-port,pika-port將解析后的快照數據發送給GeminiDB Redis。全量遷移結束后進入增量遷移,pika-port將增量數據解析后以redis命令的形式發送給GeminiDB Redis。
圖 遷移原理

使用須知
pika-port偽裝成源端Pika的從節點,只讀取全量和增量數據,無數據受損風險。
源端增加了和pika-port的主從同步流程,可能會影響源端性能。
全量和增量結合遷移可以不停服,業務切入GeminiDB Redis時短暫停服。
前提條件
部署遷移工具pika-port,確保源端Pika實例和目標端GeminiDB Redis實例網絡互通。
操作步驟
如需進行Redis到GeminiDB Redis的遷移,您可以在管理控制臺右上角,選擇“工單 > 新建工單”,聯系技術支持進行處理。
遷移性能參考
環境:Pika(單節點)和pika-port同時部署在8U32GB的彈性云服務器上,目標端為8U16GB,3節點GeminiDB Redis實例。
預置數據:使用memtier_benchmark工具預置200GB數據。
遷移性能:約50000qps。