zoukankan      html  css  js  c++  java
  • Redis迁移键

    迁移键:

    move key db 用于在Redis内部进行数据迁移

    dump key + restore key ttl value 可以实现在不同的Redis实例之间进行数据迁移

    127.0.0.1:6379> dump name

    "x00x05allenax00x82x9a*T/xb9x9bx87"

    127.0.0.1:6379> dump age

    "x00xc0!ax006.9xfaQx06xe8 "

    127.0.0.1:6379> dump pass

    "x00x06abc123ax00x90 xe8x1bxf2xd4x8bxec"

    192.168.1.122:6379> restore name 0 "x00x05allenax00x82x9a*T/xb9x9bx87"

    OK

    192.168.1.122:6379> restore age 0 "x00xc0!ax006.9xfaQx06xe8 "

    OK

    192.168.1.122:6379> restore pass 0 "x00x06abc123ax00x90 xe8x1bxf2xd4x8bxec"

    OK

    migrate host port key|"" destination-db timeout [copy] [replace] [keys key [key ...]]

    127.0.0.1:6379> migrate 192.168.1.122 6379 name 0 5000  默认是删除源库的键值

    OK

    127.0.0.1:6379> migrate 192.168.1.122 6379 "" 0 5000 copy keys age pass  copyreplace源库不删除键值

    OK

    # cat redis_mv.sh

    #!/bin/bash

    redis-cli -h 172.20.0.1 -p 6379 -a password -n 0 keys "*" | while read key

    do

        redis-cli -h 172.20.0.1 -p 6379 -a password -n 0 --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h 172.20.0.2 -p 6379 -a password -n 1 -x restore $key 0

        echo "migrate key $key"

    done

    #!/bin/bash

    #redis ip

    src_ip=192.168.0.1

    #redis port

    src_port=6379

    #redis 源库

    src_db=11

    #redis 目的ip

    dest_ip=192.168.0.1

    #redis 目的port

    dest_port=6379

    #redis 目的

    dest_db=6

    #redis 密码

    pw=123456

    #要迁移的key前缀

    #key_prefix=com.example.test

    redis-cli -h $src_ip -p $src_port -a $pw -n $src_db keys "*" | while read key

    do

        redis-cli -h $src_ip -p $src_port -a $pw -n $src_db --raw dump $key | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $pw -n $dest_db -x restore $key 0

        echo "migrate key $key"

    done

    #!/bin/bash

    #redis ip

    src_ip=192.168.0.1

    #redis port

    src_port=6379

    #redis 源库

    src_db=1

    #redis 目的ip

    dest_ip=192.168.0.1

    #redis 目的port

    dest_port=6379

    #redis 目的

    dest_db=3

    #redis 密码

    pw=123456

    #要遍历的key

    k=(medical_record:id medical_record_attachment:id patient_family_present:id patient_present:id patient_disease:id family_disease:id patient_allergy:id history_allergy:id)

    #要迁移的key前缀

    #key_prefix=com.example.test

    for loop in ${k[*]}

    do

        redis-cli -h $src_ip -p $src_port -a $pw -n $src_db --raw dump $loop | perl -pe 'chomp if eof' | redis-cli -h $dest_ip -p $dest_port -a $pw -n $dest_db -x restore $loop 0

        echo "The value is: $loop"

    done

  • 相关阅读:
    ZJOI2006 物流运输
    codevs 1403 新三国争霸
    (一) MySQL学习笔记:MySQL安装图解
    多线程同步
    SendMessage和PostMessage区别
    VS2008 MFC 配置 Gdiplus
    IE7常用的几个快捷键 你常用的是哪个
    匆匆的六年 收获了什么
    python 代码题07 sorted函数
    python 代码题06 回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数
  • 原文地址:https://www.cnblogs.com/allenhu320/p/11339901.html
Copyright © 2011-2022 走看看