복붙노트

[REDIS] 레디 스에 대량의 인제 스트

REDIS

레디 스에 대량의 인제 스트

나는 가능한 한 빨리 레디 스에 데이터의 큰 조각을로드하기 위해 노력하고있어.

내 데이터 외모가 좋아 :

771240491921 SOME;STRING;ABOUT;THIS;LENGTH
345928354912 SOME;STRING;ABOUT;THIS;LENGTH

왼쪽에 ~ 12 자리 숫자 오른쪽에 가변 길이 문자열이 있습니다. 키는 왼쪽의 수를 될 것입니다 데이터는 오른쪽에있는 문자열이 될 것입니다.

난 그냥 상자의이 데이터를 압축되지 않은 일반 텍스트 파일을 함께 설치 나의 레디 스 인스턴스에서, 나는 그것에 만 기록 분 정도 얻을 수 있습니다. 나는 45 분 정도 걸릴 것이다, 45000000에 대해 할 필요가있다. 45분이 너무 깁니다.

최적화의이 유형을 할 나를 위해 존재하는 몇 가지 표준 성능 개조하면 되겠 어이 있습니까? 나는 별도의 인스턴스에서 샤딩에 의해 더 나은 성능을 얻을 것인가?

해결법

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

    1.이 데이터 중 생성 레디 스 프로토콜 :이 작업을 수행하는 가장 빠른 방법은 다음과 같다. 문서는 레디 스 프로토콜은 Redis.io 사이트에 생성, 그것은 사소한 프로토콜입니다. 당신이이 있으면, 그냥 APPEND 전용 모드로 레디 스를 appendonly.log하고 시작 호출합니다.

    이 데이터 중 생성 레디 스 프로토콜 :이 작업을 수행하는 가장 빠른 방법은 다음과 같다. 문서는 레디 스 프로토콜은 Redis.io 사이트에 생성, 그것은 사소한 프로토콜입니다. 당신이이 있으면, 그냥 APPEND 전용 모드로 레디 스를 appendonly.log하고 시작 호출합니다.

    당신도 FLUSHALL 명령을 마지막으로 출력을 / dev / null을 리디렉션, netcat을 사용하여 서버에 데이터를 푸시 할 수 있습니다.

    이것은 데이터의 단지 대량로드의, 기다릴 RTT가없는, 슈퍼 빠른 것입니다.

    적은 hackish 방법, 단지 파이프 라인을 사용하여 시간당 일 1000를 삽입합니다. 이 프로토콜을 생성 한 빨리 거의하지만 훨씬 더 깨끗한 :)

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

    2.내가 뭘처럼 살바도르 제안,하지만 여기에 하나 더 명확 방법입니다 - 생성 CLI의 공급, 예를 들어

    내가 뭘처럼 살바도르 제안,하지만 여기에 하나 더 명확 방법입니다 - 생성 CLI의 공급, 예를 들어

    SET xxx yyy
    SET xxx yyy
    SET xxx yyy
    

    당신에게 서버 가까이에 CLI에 파이프를. 그런 다음 대상 서버로, 종료 및 이동 데이터 파일을 저장 않습니다.

  3. from https://stackoverflow.com/questions/7505011/bulk-ingest-into-redis by cc-by-sa and MIT license