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