[REDIS] 레디 스는 반복없이 터지는없이 목록의 모든 값을 가져 오기
REDIS레디 스는 반복없이 터지는없이 목록의 모든 값을 가져 오기
나는 간단한 레디 스 목록 키가 => "supplier_id"
이제 모든 나는 실제로 이상 반복하거나 목록에서 값을 보여주고없이 목록의 모든 값을 검색하려면
예 지금은 반복 처리가 넘는 길이 레디 스 모두에게 목록에서 값을 검색하기
element = []
0.upto(redis.llen("supplier_id")-1) do |index|
element << redis.lindex("supplier_id",index)
end
이 더 레디 스를 모델링과 반복 perhap없이 수행 할 수 있습니다. 캔 누군가 제안
해결법
-
==============================
1.레디 스와 목록의 모든 항목을 검색하려면 반복하는 것을 필요로하고 각 개별 항목을 가져 오지 않습니다. 정말 비효율적이다.
레디 스와 목록의 모든 항목을 검색하려면 반복하는 것을 필요로하고 각 개별 항목을 가져 오지 않습니다. 정말 비효율적이다.
당신은 한 번에 모든 항목을 검색 할 LRANGE 명령을 사용해야합니다.
elements = redis.lrange( "supplier_id", 0, -1 )
목록 자체를 변경하지 않고 목록의 모든 항목을 반환합니다.
-
==============================
2.나는 귀하의 질문에 조금 불분명 해요하지만 supplier_id 숫자 인 경우, 이유가 아닌 ZSET를 사용합니까?
나는 귀하의 질문에 조금 불분명 해요하지만 supplier_id 숫자 인 경우, 이유가 아닌 ZSET를 사용합니까?
지금처럼 값을 추가합니다 :
ZADD suppliers 1 "data for supplier 1" ZADD suppliers 2 "data for supplier 2" ZADD suppliers 3 "data for supplier 3"
그런 다음 최대 (그러나 공급 업체 세 포함하지 않음)과 같이 모든 것을 제거 할 수 있습니다 :
ZREMRANGEBYSCORE suppliers -inf 2
또는
ZREMRANGEBYSCORE suppliers -inf (3
그것은 또한 당신에게 당신이 단지에서 읽으려면 (공급 업체 ID를 기준으로) 매우 빠른 액세스를 제공합니다.
희망이 도움이!
from https://stackoverflow.com/questions/10703019/redis-fetch-all-value-of-list-without-iteration-and-without-popping by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] AWS 마이크로 인스턴스 레디 스를 설치 (0) | 2020.01.12 |
---|---|
[REDIS] 캐싱 애플리케이션에서 디스크 대 레디 스의 성능 (0) | 2020.01.12 |
[REDIS] 레디 스-평 : StrictRedis ()와 레디 스 ()의 차이점은 무엇입니까? (0) | 2020.01.12 |
[REDIS] Node.js를에서 채팅 서버에 대한 레디 스 펍 / 하위 (0) | 2020.01.12 |
[REDIS] 실시간 응용 프로그램 초보자 - Node.js를 + 레디 스 또는 RabbitMQ -> 클라이언트 / 서버 방법? (0) | 2020.01.12 |