migrate
MIGRATE
Redis 開発者教育 Redis Developer Course |
Redis 定期点検/技術支援 Redis Technical Support |
Redis エンタープライズサーバ Redis Enterprise Server |
---|
dataを他のRedis Serverに移す。
使い方は migrate host port key destination-db です。
keyとdataを指定したRedis Server(instance)でmoveします。
指定したServerに該当keyがすでにあればエラーを発生させて、移さないです。
Example
コマンド> | set key value |
結果> | OK |
コマンド> | migrate 192.168.56.102 6379 key 0 1000 |
結果> | OK |
コマンド> | exists key |
結果> | 0 |
コマンド> | set key XXXXX |
結果> | OK |
コマンド> | migrate 192.168.56.102 6379 key 0 1000 |
結果> | (error) ERR Target instance replied with error: BUSYKEY Target key name already exists. |
コマンド> | get key target Redis Serverに接続して確認 |
結果> | value |
このコマンドは内部的にdump、restore、delコマンドを実行します。 copy、replaceオプションを使用しないとsource serverが3.0で、target serverが2.8であってもいいです。 しかし、この二つのオプションを使用するためにはsource、target serverすべて3.0以上でなければなりません。 copy、replaceオプションは3.0から使用可能です。 |
copy, replaceオプションの使用
使い方は migrate host port key destination-db copy replace です。
copyはsource serverで削除しません。
replace는 target serverに該当keyがあれば更新します。
copyとreplaceオプションを一緒に使用してもいいです。
Example
コマンド> | migrate 192.168.56.102 6379 key 0 1000 copy |
結果> | OK |
コマンド> | exists key |
結果> | 0 |
コマンド> | set key YYYYY |
結果> | OK |
コマンド> | migrate 192.168.56.102 6379 key 0 1000 replace |
結果> | OK |
コマンド> | get key target Redis Serverに接続して確認 |
結果> | YYYYY |
Auth, Auth2 옵션
Auth는 requirepass 파라미터를 지정했을 경우 사용하고(4.0.6부터), Auth2는 ACL(버전6부터 적용)을 이용할 경우 사용합니다.
- 키 하나 이동: MIGRATE host port key dbid timeout [COPY | REPLACE | AUTH password | AUTH2 username password]
- 여러 개 키 이동: MIGRATE host port "" dbid timeout [COPY | REPLACE | AUTH password | AUTH2 username password] KEYS key1 key2 ... keyN
Multi key 이동
버전 3.0.6부터 multi key를 이동할 수 있습니다.
migrate 192.168.56.102 6379 "" 0 1000 KEYS key1 key2 key3
지정한 키가 모두 없으면 'NOKEY'를 리턴하고,
일부키가 없어도 에러를 내보지지 않고 'OK'를 러턴합니다.
Example
명령> | migrate 192.168.56.102 6379 "" 0 1000 KEYS key1 key2 key3 |
결과> | OK |
Multi key 사용 시 이동하는 키에 expire가 설정되어 있을 경우
버그로 인하여 다른 키에 expire가 설정될 수 있습니다.
이 버그는 3.2.7에서 수정되었습니다. 좀 더 자세한 내용은 여기를 보세요. |
クラスターでkeyの移動
クラスター環境でkey(データ)を他のマスターサーバーに移動するためには、先にスロットを移動予告してしなければなりません。
CLUSTER SETSLOT IMPORTING/MIGRATINGコマンドを実行してからMIGRATEコマンドにデータを移動した後、
CLUSTER SETSLOT NODEを使用して完了しなければなりません。
CLUSTER SETSLOTコマンドはここを
実際の移動例題はクラスター設計をみてください。
コマンド
MIGRATE host port key destination-db timeout [COPY] [REPLACE]
- このコマンドはversion 2.6.0から使用することができます。.
- 論理的処理の所要時間:source serverでは内部的にdump+delが実行されて、target serverではrestoreが実行されます。
- copy、replaceオプションは3.0から使用することができます。
関連コマンド | DUMP, RESTORE |
Clients for Java | Jedis, Lettuce, Redisson | Clients for C | Hiredis |
<< RESTORE | MIGRATE | TOUCH >> |
---|
クリック件数 :