[REDIS] 레디 스에 대량의 인제 스트
REDIS레디 스에 대량의 인제 스트
나는 가능한 한 빨리 레디 스에 데이터의 큰 조각을로드하기 위해 노력하고있어.
내 데이터 외모가 좋아 :
771240491921 SOME;STRING;ABOUT;THIS;LENGTH
345928354912 SOME;STRING;ABOUT;THIS;LENGTH
왼쪽에 ~ 12 자리 숫자 오른쪽에 가변 길이 문자열이 있습니다. 키는 왼쪽의 수를 될 것입니다 데이터는 오른쪽에있는 문자열이 될 것입니다.
난 그냥 상자의이 데이터를 압축되지 않은 일반 텍스트 파일을 함께 설치 나의 레디 스 인스턴스에서, 나는 그것에 만 기록 분 정도 얻을 수 있습니다. 나는 45 분 정도 걸릴 것이다, 45000000에 대해 할 필요가있다. 45분이 너무 깁니다.
최적화의이 유형을 할 나를 위해 존재하는 몇 가지 표준 성능 개조하면 되겠 어이 있습니까? 나는 별도의 인스턴스에서 샤딩에 의해 더 나은 성능을 얻을 것인가?
해결법
-
==============================
1.이 데이터 중 생성 레디 스 프로토콜 :이 작업을 수행하는 가장 빠른 방법은 다음과 같다. 문서는 레디 스 프로토콜은 Redis.io 사이트에 생성, 그것은 사소한 프로토콜입니다. 당신이이 있으면, 그냥 APPEND 전용 모드로 레디 스를 appendonly.log하고 시작 호출합니다.
이 데이터 중 생성 레디 스 프로토콜 :이 작업을 수행하는 가장 빠른 방법은 다음과 같다. 문서는 레디 스 프로토콜은 Redis.io 사이트에 생성, 그것은 사소한 프로토콜입니다. 당신이이 있으면, 그냥 APPEND 전용 모드로 레디 스를 appendonly.log하고 시작 호출합니다.
당신도 FLUSHALL 명령을 마지막으로 출력을 / dev / null을 리디렉션, netcat을 사용하여 서버에 데이터를 푸시 할 수 있습니다.
이것은 데이터의 단지 대량로드의, 기다릴 RTT가없는, 슈퍼 빠른 것입니다.
적은 hackish 방법, 단지 파이프 라인을 사용하여 시간당 일 1000를 삽입합니다. 이 프로토콜을 생성 한 빨리 거의하지만 훨씬 더 깨끗한 :)
-
==============================
2.내가 뭘처럼 살바도르 제안,하지만 여기에 하나 더 명확 방법입니다 - 생성 CLI의 공급, 예를 들어
내가 뭘처럼 살바도르 제안,하지만 여기에 하나 더 명확 방법입니다 - 생성 CLI의 공급, 예를 들어
SET xxx yyy SET xxx yyy SET xxx yyy
당신에게 서버 가까이에 CLI에 파이프를. 그런 다음 대상 서버로, 종료 및 이동 데이터 파일을 저장 않습니다.
from https://stackoverflow.com/questions/7505011/bulk-ingest-into-redis by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] C에서 # StackExchange / 센티넬와 레디 스 페일 오버 (0) | 2020.01.05 |
---|---|
[REDIS] StackExchange.Redis와 레디 스의 KEYSPACE 알림 (0) | 2020.01.04 |
[REDIS] 어떻게 레디 스에서 /로 설정 / GET pandas.DataFrame에? (0) | 2020.01.04 |
[REDIS] 레디 스에 만료되지 않는 키 찾기 (0) | 2020.01.04 |
[REDIS] 어떻게 레디 스 데이터베이스 사이에 변경합니까? (0) | 2020.01.04 |