名稱:
pika_to_redis
位置:
pika/third/nemo/tools/migrator/pika_to_redis
目的:
離線遷移pika數(shù)據(jù)到redis
背景:
Pika兼容Redis協(xié)議,所以任何使用于Redis的遷移工具同樣也適用于Pika,Redis-cli本身提供了一個pipe參數(shù)來完成Redis到Redis
- 遷移過程中,不斷讀取aof新增內(nèi)容
- 錯誤輸出
- 線程并行方式代替串行方式,提高遷移效率
實現(xiàn):
migrator線程
- 掃描不同數(shù)據(jù)類型的分庫
- 將掃描到key分發(fā)給parser線程
parser線程
- 接收migrator發(fā)送的key
- 將key進行解析成響應(yīng)數(shù)據(jù)redis指令
- 將解析好的redis指令加載到sender的發(fā)送buf中
sender線程
- 從發(fā)送buf中讀取數(shù)據(jù),以非阻塞方式向redis發(fā)送數(shù)據(jù)
- 接收redis返回的結(jié)果并解析,如果出現(xiàn)錯誤則顯示錯誤結(jié)果
使用:
Usage: ./pika_to_redis db_path <ip> <port> <num_sender>
$ ./pika_to_redis ~/db 127.0.0.1 6379 20
地址:
更多建議: