복붙노트

[REDIS] 한 번에 레디 스 목록에서 모든 목록 항목을 팝업 할 수있는 방법이 있습니까?

REDIS

한 번에 레디 스 목록에서 모든 목록 항목을 팝업 할 수있는 방법이 있습니까?

나는 한 번에 레디 스 목록에서 모든 목록 항목을 팝업합니다.

나는 비효율적 전송 요청을 레디 스 서버에 여러 시간이 될 것으로 보인다 때문에 목록이 비어있는 경우가 lpop 또는 rpop 메소드를 호출하지 않습니다.

나는 또한 lrange 방법으로 모든 목록을 얻을 수 있지만, 아이템을 진열 할 수없는 것을 알고있다.

당신은 저를 제안 할 수?

난 그냥 팝업 레디 스 서버에 하나 개의 요청에 의해 목록에서 항목을 얻을합니다.

해결법

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

    1.로 이타 마르 하버는 사용 lrange와 델 말했다. 파이프 모드에서는 하나의 명령으로 수행됩니다.

    로 이타 마르 하버는 사용 lrange와 델 말했다. 파이프 모드에서는 하나의 명령으로 수행됩니다.

    LRANGE key 0 -1
    DEL key
    
  2. ==============================

    2.레디 스는 POPALL 명령을 가지고 있지 않지만, 임베디드 루아 스크립트를 사용하여 쉽게 예를 들어 다음과 같이이 작업을 수행 할 수 있습니다 :

    레디 스는 POPALL 명령을 가지고 있지 않지만, 임베디드 루아 스크립트를 사용하여 쉽게 예를 들어 다음과 같이이 작업을 수행 할 수 있습니다 :

    local reply = redis.call('LRANGE', KEYS[1], 0, -1)
    redis.call('DEL', KEYS[1])
    return reply
    
  3. from https://stackoverflow.com/questions/34493730/is-there-any-way-to-pop-all-list-items-from-redis-list-at-once by cc-by-sa and MIT license