복붙노트

[REDIS] 레디 스 대량 삽입

REDIS

레디 스 대량 삽입

나는이 I을 처리하기 위해 바쁜 쓰기 코드를 얻기 전에 http://redis.io/topics/mass-insert 단지 확인 I가 무엇인지에 대한 명확한 오전되고 싶어요 : 여기에 설명 된 바와 같이 나는 대량 삽입을 할 레디 스 '프로토콜을 사용하여 고려하고 레디 스에서 요구하는 것은이 일을 확인합니다.

위의 링크는 SET 작업을 호출 할 것을 제안 [SET의 mykey 값 myValue] 내가 파일 또는 단일 인용 문자열 중 여러 라인에서 수행 할 수있는 명령을 만들 필요가 대량 삽입을 사용하여.

나는 SET 명령을 사용하지 않는 가정 대신에 나는 세트에 추가 할 SADD의 명령을 사용합니다. 내가 여기에 인용 된 문자열 형식으로 유효가 무엇입니까?

"* 4 \ R \ n 4 $ \ R \ nSADD \ R \ n $ 2 \ R \ N80 \ R \ n 5 $ \ R \ n1,2,34 \ R \ n"

값이 1,2,34 80 : 기본적으로 내가 무엇을 저장하고하는 것은 중요하다

내가 원하는 결국 할 수있는 기능이 있습니다 :

Key     Value
80      1,2,34
90      4,8,34

두 집합의 교집합 (소결) 및 / 또는 노동 조합 (SUNION)를 가져옵니다. 즉 소결 = 34 또는 SUNION = 1,2,4,8,34

당신이 제공 할 수있는 모든 유용한 정보 감사드립니다. 난 그냥 옳은 길이에있어 있는지 확인하려면.

해결법

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

    1.나는 당신이 (보통 가장 좋은 것이 아니다) 조기 최적화의 경로에있는 말할 것입니다.

    나는 당신이 (보통 가장 좋은 것이 아니다) 조기 최적화의 경로에있는 말할 것입니다.

    레디 스 클라이언트를 지원하는 파이프 라인을 가진 모든 스크립트 언어가 적어도 50K 명령을 밀어 할 수 있어야한다 /를 레디 스 서버에이야. 코드는 수동으로 레디 스 프로토콜을 인코딩 할 필요없이, 간단합니다. 부여, 대규모 삽입 트릭은 빠르지 만, 당신이 정말로 그것을 필요합니까?

    당신은 여전히 ​​대규모 삽입에 충실하고자하는 경우에 지금, 당신은 적절한 레디 스 명령을 인코딩 할 필요가있다. 제공 한 예는 여러 가지 이유로 잘못이다 :

    적절한 명령은 오히려이 같은 것입니다 :

    "*5\r\n$4\r\nSADD\r\n$2\r\n80\r\n$1\r\n1\r\n$1\r\n2\r\n$2\r\n34\r\n"
    

    레디 스 프로토콜은 여기에 설명되어 있습니다 : http://redis.io/topics/protocol

  2. from https://stackoverflow.com/questions/18870623/redis-mass-insertion by cc-by-sa and MIT license