[REDIS] 어떻게 한 서버에서 다른 서버로 레디 스 데이터베이스를 이동하는 방법은 무엇입니까?
REDIS어떻게 한 서버에서 다른 서버로 레디 스 데이터베이스를 이동하는 방법은 무엇입니까?
나는 현재 클라우드 인스턴스에서 실행되는 라이브 레디 스 서버를 가지고 있고 새로운 클라우드 인스턴스에이 레디 스 서버를 마이그레이션하고 나의 새로운 레디 스 서버로 해당 인스턴스를 사용하고 싶습니다. 그것은 MySQL이 있다면, 나는 이전 서버에서 DB를 내보내고 새 서버로 가져올 것입니다. 어떻게 레디 스로이 작업을 수행해야합니까?
P.S : 나는 셋업 복제에 찾는 게 아니에요. 나는 완전히 새로운 인스턴스로 레디 스 서버를 마이그레이션 할.
해결법
-
==============================
1.중 하나를 명령 줄에서 BGSAVE 또는 SAVE를 실행하여 dump.rdb에 데이터베이스의 스냅 샷을 저장. 이것은 당신의 레디 스 서버와 동일한 폴더에 dump.rdb라는 이름의 파일을 만듭니다. 모든 서버의 명령 목록을 참조하십시오.
중 하나를 명령 줄에서 BGSAVE 또는 SAVE를 실행하여 dump.rdb에 데이터베이스의 스냅 샷을 저장. 이것은 당신의 레디 스 서버와 동일한 폴더에 dump.rdb라는 이름의 파일을 만듭니다. 모든 서버의 명령 목록을 참조하십시오.
당신이 마이그레이션 할 다른 레디 스 서버에이 dump.rdb를 복사합니다. 레디 스가 시작되면이 파일에서 데이터베이스를 초기화하기가 보인다.
-
==============================
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.다음은 하나의 명령으로 마스터에 새 노드를 전환과 이동을 할 수 - 당신은 서버 사이의 연결이 경우는 슬레이브 노드로 새로운 인스턴스 (SQL과는 달리 사소한) 복제를 설정하는 것이 좋습니다 제로 다운 타임.
다음은 하나의 명령으로 마스터에 새 노드를 전환과 이동을 할 수 - 당신은 서버 사이의 연결이 경우는 슬레이브 노드로 새로운 인스턴스 (SQL과는 달리 사소한) 복제를 설정하는 것이 좋습니다 제로 다운 타임.
-
==============================
4.믿거 나 말거나, 난 그냥에 대한 기사를했다 :
믿거 나 말거나, 난 그냥에 대한 기사를했다 :
http://redis4you.com/articles.php?id=005&name=Seamless+migration+from+one+Redis+server+to+another
-
==============================
5.그것은 SLAVEOF 명령을 사용하여 마이그레이션 데이터도 가능합니다 :
그것은 SLAVEOF 명령을 사용하여 마이그레이션 데이터도 가능합니다 :
SLAVEOF old_instance_name old_instance_port
* 당신이 키를 사용하여 키를받을 수 있는지 확인합니다. 당신도 다른 방법으로 새 인스턴스를 테스트하고 작업이 완료되면 단지의 복제를 돌 수 있었다 :
SLAVEOF NO ONE
-
==============================
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.dump.rdb가 레디 스 데이터를 가져올 때 배치해야하는 위치를 확인하려면,
dump.rdb가 레디 스 데이터를 가져올 때 배치해야하는 위치를 확인하려면,
시작 클라이언트
$redis-cli
과
그때
redis 127.0.0.1:6379> CONFIG GET * 1) "dir" 2) "/Users/Admin"
여기에 / 사용자 / 관리자는 서버에서 읽기 때문에이 교체되어야하는 파일입니다 dump.rdb의 위치입니다.
-
==============================
8.당신은 또한 RDD을 사용할 수 있습니다
당신은 또한 RDD을 사용할 수 있습니다
그것은 덤프 및 실행중인 복원 서버 레디 스 및 필터 / 경기 / 이름 변경이 키를 덤프 할 수 있습니다
-
==============================
9.나는 또한 같은 일을 할 : 독립 마이그레이션 DB를은 다른 레디 스 인스턴스에 인스턴스를 레디 스 (레디 스 감시).
나는 또한 같은 일을 할 : 독립 마이그레이션 DB를은 다른 레디 스 인스턴스에 인스턴스를 레디 스 (레디 스 감시).
데이터 (세션 데이터) 중요하지 않기 때문에, 나는 시도 https://github.com/yaauie/redis-copy 줄 것이다.
-
==============================
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.난 그냥 당신이 다른 하나의 레디 스 데이터베이스에서 특정 패턴을 (심지어 *)와 일치하는 키를 복사 할 수 있습니다 NPM과 github에 대한 명령 줄 인터페이스 유틸리티를 발표했다.
난 그냥 당신이 다른 하나의 레디 스 데이터베이스에서 특정 패턴을 (심지어 *)와 일치하는 키를 복사 할 수 있습니다 NPM과 github에 대한 명령 줄 인터페이스 유틸리티를 발표했다.
여기 유틸리티를 찾을 수 있습니다 :
https://www.npmjs.com/package/redis-utils-cli
-
==============================
12.제로 다운 타임 마이그레이션이의 핵심 요소 :
제로 다운 타임 마이그레이션이의 핵심 요소 :
한마디로 :
또한 소스를 잘 작성 대상을 분리 한 후 쓰기를 받아 레디 스 비활성화 할 수 있습니다 옵션이 레디 스 :
적용이 주제
RedisLabs 팀 https://redislabs.com/blog/real-time-synchronization-tool-for-redis-migration에서 매우 좋은 설명
그리고 마이그레이션에 대한 그들의 대화 형 도구 : https://github.com/RedisLabs/redis-migrate
-
==============================
13.레디 스 덤프는 마지막 날 위해 일했습니다. 그 문서는 레디 스 데이터베이스를 덤프하고 다른 하나에 데이터를 삽입하는 방법을 예를 제공합니다.
레디 스 덤프는 마지막 날 위해 일했습니다. 그 문서는 레디 스 데이터베이스를 덤프하고 다른 하나에 데이터를 삽입하는 방법을 예를 제공합니다.
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
'REDIS' 카테고리의 다른 글
[REDIS] beanstalkd 대 resque 대 delayed_jobs? (0) | 2020.01.01 |
---|---|
[REDIS] 나는 무엇을 선택해야합니다 : MongoDB를 / 카산드라 / 레디 스 / CouchDB를? [닫은] (0) | 2020.01.01 |
[REDIS] 왜 우리는 PostgreSQL을 같은 데이터베이스를 통해 RabbitMQ 같은 메시지 브로커가 필요합니까? (0) | 2020.01.01 |
[REDIS] PHP와 레디 스에 갈 연결 (0) | 2020.01.01 |
[REDIS] 나쁜 액티브 디렉토리의 LDAP 자격 증명과 세션 / 레디 스 직렬화 오류 봄 부팅 (0) | 2020.01.01 |