[REDIS] MySQL의에 동기화 레디 스 데이터에 최선의 전략은 무엇입니까?
REDISMySQL의에 동기화 레디 스 데이터에 최선의 전략은 무엇입니까?
내 솔루션입니다 :
이 솔루션 OK인가? 그리고이 일을 할 수있는 최선의 전략은 무엇인가?
해결법
-
==============================
1.당신은 해킹 아무것도 할 필요가 없습니다)
당신은 해킹 아무것도 할 필요가 없습니다)
나는 전적으로 당신이 MySQL을 데이터가 필요 왜 안입니다. 내가 알았다면, 어쩌면 더 적합 답이있을 것입니다. 어떤 경우에는, 일반적인 답변으로 당신은 레디 스 KEYSPACE 알림을 사용할 수 있습니다
당신은 키가 삭제 통지마다 또는 설정하거나 제거 해시 값을 얻을 것입니다, 그래서 당신은 당신의 키에 명령 HSET, HMSET, HDEL 및 DEL를 구독 할 수 있습니다.
당신이 어떤 통지를 놓칠 경우 불일치가있을 것입니다 있습니다. 그래서 그냥 모든 키를 통해 이동하고 업데이트해야하는 경우 MySQL을 확인하기 위해 SCAN 명령을 사용할 수있는 동안 한번.
또 다른 전략은 두 개의 분리 된 구조를 유지 할 수있다. 하나는 값으로 해시 것, 다른 하나는 모든 값의 ZSET이 업데이트의 타임 스탬프으로 분류 될 것이다. 현재까지 두 구조를 유지하는 가장 좋은 방법은 해시와 원자 적 ZSET에서 작동하는 것 두 개 또는 세 루아 스크립트 (삽입 / 업데이트 및 삭제)를 작성하는 것입니다.
그럼 그냥 주기적으로 (독점적 사람들을위한 두 번째 ZSET을 사용하지 않으려면이 삭제 키를 포함 할 것)하고, 갱신 된 모든 키를 얻을, 마지막 동기화 작업보다 높은 타임 스탬프 요소에 대한 ZSET을 조회 할 수 있습니다 MySQL의 열쇠와 동기화하여 모든 요소를 검색 할 수 있습니다.
당신을 위해 작동합니다 희망!
-
==============================
2.당신은 레디 스 복제 프로토콜을 구현할 수 있습니다. 하지만 귀하의 요구에 대한 GitHub의 프로젝트가있다.
당신은 레디 스 복제 프로토콜을 구현할 수 있습니다. 하지만 귀하의 요구에 대한 GitHub의 프로젝트가있다.
안정 버전은 2.5.0이다
<dependency> <groupId>com.moilioncircle</groupId> <artifactId>redis-replicator</artifactId> <version>2.5.0</version> </dependency>
-
==============================
3.당신은 레디 스 값을 업데이트 할 때 큐의 값을 소비하는 등 Redis.Then의 목록으로, 다른 '큐'의 값을 넣어 MySQL을 업데이트 할 수 있습니다.
당신은 레디 스 값을 업데이트 할 때 큐의 값을 소비하는 등 Redis.Then의 목록으로, 다른 '큐'의 값을 넣어 MySQL을 업데이트 할 수 있습니다.
레디 스 데이터는 배치 평면에 MySQL의 모든 데이터를 스케줄러를 사용하여, 너무 많이없는 경우.
from https://stackoverflow.com/questions/23080557/whats-the-best-strategy-to-sync-redis-data-to-mysql by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 레디 스 알림 : 만기에 키와 값을 가져옵니다 (0) | 2020.01.11 |
---|---|
[REDIS] 당신은 어떻게 토네이도에서 제대로 * 쿼리 레디 스를 *합니까? (0) | 2020.01.11 |
[REDIS] 문자열로 성능, 저장 JSON 개체를 레디 스 (0) | 2020.01.11 |
[REDIS] 레디 스 : Elasticache 대 아마존 EC2 (0) | 2020.01.11 |
[REDIS] nodeJS에서 펍 / 서브 구현 (0) | 2020.01.11 |