복붙노트

[REDIS] 어떻게 한 서버에서 다른 서버로 레디 스 데이터베이스를 이동하는 방법은 무엇입니까?

REDIS

어떻게 한 서버에서 다른 서버로 레디 스 데이터베이스를 이동하는 방법은 무엇입니까?

나는 현재 클라우드 인스턴스에서 실행되는 라이브 레디 스 서버를 가지고 있고 새로운 클라우드 인스턴스에이 레디 스 서버를 마이그레이션하고 나의 새로운 레디 스 서버로 해당 인스턴스를 사용하고 싶습니다. 그것은 MySQL이 있다면, 나는 이전 서버에서 DB를 내보내고 새 서버로 가져올 것입니다. 어떻게 레디 스로이 작업을 수행해야합니까?

P.S : 나는 셋업 복제에 찾는 게 아니에요. 나는 완전히 새로운 인스턴스로 레디 스 서버를 마이그레이션 할.

해결법

  1. ==============================

    1.중 하나를 명령 줄에서 BGSAVE 또는 SAVE를 실행하여 dump.rdb에 데이터베이스의 스냅 샷을 저장. 이것은 당신의 레디 스 서버와 동일한 폴더에 dump.rdb라는 이름의 파일을 만듭니다. 모든 서버의 명령 목록을 참조하십시오.

    중 하나를 명령 줄에서 BGSAVE 또는 SAVE를 실행하여 dump.rdb에 데이터베이스의 스냅 샷을 저장. 이것은 당신의 레디 스 서버와 동일한 폴더에 dump.rdb라는 이름의 파일을 만듭니다. 모든 서버의 명령 목록을 참조하십시오.

    당신이 마이그레이션 할 다른 레디 스 서버에이 dump.rdb를 복사합니다. 레디 스가 시작되면이 파일에서 데이터베이스를 초기화하기가 보인다.

  2. ==============================

    2.첫째, 서버 A의 덤프를 생성

    첫째, 서버 A의 덤프를 생성

    A$ redis-cli
    127.0.0.1:6379> CONFIG GET dir
    1) "dir"
    2) "/var/lib/redis/"
    127.0.0.1:6379> SAVE
    OK
    

    이 수 있도록 보장 dump.rdb 완전히 최신이며,이 (이 경우 /var/lib/redis/dump.rdb) 저장되어 보여 우리. dump.rdb는 주기적으로 자동으로 디스크에 기록됩니다.

    다음으로, 서버 B에 복사 :

    A$ scp /var/lib/redis/dump.rdb myuser@B:/tmp/dump.rdb
    

    (있도록 권한이 이전과 동일 함) dump.rdb 복사 B의 레디 스 서버를 중지 한 후 시작한다.

    B$ sudo service redis-server stop
    B$ sudo cp /tmp/dump.rdb /var/lib/redis/dump.rdb
    B$ sudo chown redis: /var/lib/redis/dump.rdb
    B$ sudo service redis-server start
    

    B에 레디 스의 버전이 더 클 수 또는 A의보다 동일하거나 호환성 문제를 칠 수 있어야합니다.

  3. ==============================

    3.다음은 하나의 명령으로 마스터에 새 노드를 전환과 이동을 할 수 - 당신은 서버 사이의 연결이 경우는 슬레이브 노드로 새로운 인스턴스 (SQL과는 달리 사소한) 복제를 설정하는 것이 좋습니다 제로 다운 타임.

    다음은 하나의 명령으로 마스터에 새 노드를 전환과 이동을 할 수 - 당신은 서버 사이의 연결이 경우는 슬레이브 노드로 새로운 인스턴스 (SQL과는 달리 사소한) 복제를 설정하는 것이 좋습니다 제로 다운 타임.

  4. ==============================

    4.믿거 나 말거나, 난 그냥에 대한 기사를했다 :

    믿거 나 말거나, 난 그냥에 대한 기사를했다 :

    http://redis4you.com/articles.php?id=005&name=Seamless+migration+from+one+Redis+server+to+another

  5. ==============================

    5.그것은 SLAVEOF 명령을 사용하여 마이그레이션 데이터도 가능합니다 :

    그것은 SLAVEOF 명령을 사용하여 마이그레이션 데이터도 가능합니다 :

    SLAVEOF old_instance_name old_instance_port
    

    * 당신이 키를 사용하여 키를받을 수 있는지 확인합니다. 당신도 다른 방법으로 새 ​​인스턴스를 테스트하고 작업이 완료되면 단지의 복제를 돌 수 있었다 :

    SLAVEOF NO ONE
    
  6. ==============================

    6.요즘 당신은 또한 2.6부터 사용할 수 MIGRATE를 사용할 수 있습니다.

    요즘 당신은 또한 2.6부터 사용할 수 MIGRATE를 사용할 수 있습니다.

    나는 하나의 데이터베이스에서 데이터를 이동하고 싶어하고 모든 그들 때문에 이것을 사용했다. 두 레디 스 인스턴스는 두 개의 서로 다른 기계에 살고있다.

    당신은 레디 스-1에서 레디 스-2에 직접 연결할 수없는 경우, 사용 ssh 포트 바인딩 :

     ssh user@redis-2.foo.com -L 1234:127.0.0.1:6379
    

    루프에 대한 작은 스크립트 키와 MIGRATE 각 키를 사용하여 모든 키. 이는 펄,하지만 잘하면 당신은 아이디어를 얻을 :

     foreach ( $redis_from->keys('*') ) {
    
        $redis_from->migrate(
            $destination{host},    # localhost in my example
            $destination{port},    # 1234
            $_,                    # The key
            $destination{db},
            $destination{timeout} 
        );
     }
    

    추가 정보를 원하시면 http://redis.io/commands/migrate를 참조하십시오.

  7. ==============================

    7.dump.rdb가 레디 스 데이터를 가져올 때 배치해야하는 위치를 확인하려면,

    dump.rdb가 레디 스 데이터를 가져올 때 배치해야하는 위치를 확인하려면,

    시작 클라이언트

    $redis-cli
    

    그때

    redis 127.0.0.1:6379> CONFIG GET *
     1) "dir"
     2) "/Users/Admin"
    

    여기에 / 사용자 / 관리자는 서버에서 읽기 때문에이 교체되어야하는 파일입니다 dump.rdb의 위치입니다.

  8. ==============================

    8.당신은 또한 RDD을 사용할 수 있습니다

    당신은 또한 RDD을 사용할 수 있습니다

    그것은 덤프 및 실행중인 복원 서버 레디 스 및 필터 / 경기 / 이름 변경이 키를 덤프 할 수 있습니다

  9. ==============================

    9.나는 또한 같은 일을 할 : 독립 마이그레이션 DB를은 다른 레디 스 인스턴스에 인스턴스를 레디 스 (레디 스 감시).

    나는 또한 같은 일을 할 : 독립 마이그레이션 DB를은 다른 레디 스 인스턴스에 인스턴스를 레디 스 (레디 스 감시).

    데이터 (세션 데이터) 중요하지 않기 때문에, 나는 시도 https://github.com/yaauie/redis-copy 줄 것이다.

  10. ==============================

    10.내가 수출 / 백업 레디 스 데이터 (덤프 파일 생성)에 발견 된 간단한 방법은 slaveof 플래그를 사용하여 명령 행을 통해 서버를 시작하고 (레디 스 포트 6379에 1.2.3.4 인 소스 가정) 다음과 같은 라이브 복제본을 만드는 것입니다 :

    내가 수출 / 백업 레디 스 데이터 (덤프 파일 생성)에 발견 된 간단한 방법은 slaveof 플래그를 사용하여 명령 행을 통해 서버를 시작하고 (레디 스 포트 6379에 1.2.3.4 인 소스 가정) 다음과 같은 라이브 복제본을 만드는 것입니다 :

    /usr/bin/redis-server --port 6399 --dbfilename backup_of_master.rdb --slaveof 1.2.3.4 6379
    
  11. ==============================

    11.난 그냥 당신이 다른 하나의 레디 스 데이터베이스에서 특정 패턴을 (심지어 *)와 일치하는 키를 복사 할 수 있습니다 NPM과 github에 대한 명령 줄 인터페이스 유틸리티를 발표했다.

    난 그냥 당신이 다른 하나의 레디 스 데이터베이스에서 특정 패턴을 (심지어 *)와 일치하는 키를 복사 할 수 있습니다 NPM과 github에 대한 명령 줄 인터페이스 유틸리티를 발표했다.

    여기 유틸리티를 찾을 수 있습니다 :

    https://www.npmjs.com/package/redis-utils-cli

  12. ==============================

    12.제로 다운 타임 마이그레이션이의 핵심 요소 :

    제로 다운 타임 마이그레이션이의 핵심 요소 :

    한마디로 :

    또한 소스를 잘 작성 대상을 분리 한 후 쓰기를 받아 레디 스 비활성화 할 수 있습니다 옵션이 레디 스 :

    적용이 주제

    RedisLabs 팀 https://redislabs.com/blog/real-time-synchronization-tool-for-redis-migration에서 매우 좋은 설명

    그리고 마이그레이션에 대한 그들의 대화 형 도구 : https://github.com/RedisLabs/redis-migrate

  13. ==============================

    13.레디 스 덤프는 마지막 날 위해 일했습니다. 그 문서는 레디 스 데이터베이스를 덤프하고 다른 하나에 데이터를 삽입하는 방법을 예를 제공합니다.

    레디 스 덤프는 마지막 날 위해 일했습니다. 그 문서는 레디 스 데이터베이스를 덤프하고 다른 하나에 데이터를 삽입하는 방법을 예를 제공합니다.

  14. from https://stackoverflow.com/questions/6004915/how-do-i-move-a-redis-database-from-one-server-to-another by cc-by-sa and MIT license