Development Tip

Redis는 반복하지 않고 팝하지 않고 목록의 모든 값을 가져옵니다.

yourdevel 2020. 12. 10. 21:23
반응형

Redis는 반복하지 않고 팝하지 않고 목록의 모든 값을 가져옵니다.


간단한 redis 목록 키 => "supplier_id"가 있습니다.

이제 내가 원하는 것은 실제로 반복하거나 목록에서 값을 팝하지 않고 목록의 모든 값을 검색합니다.

목록에서 모든 값을 검색하는 예 이제 redis 길이를 반복합니다.

element = []
0.upto(redis.llen("supplier_id")-1) do |index| 
  element << redis.lindex("supplier_id",index)
 end

이것은 아마도 더 나은 redis 모델링으로 반복없이 수행 수 있습니다 . 누구든지 제안 할 수 있습니까


Redis를 사용하여 목록의 모든 항목을 검색하기 위해 각 개별 항목을 반복하고 가져올 필요가 없습니다. 정말 비효율적입니다.

한 번에 모든 항목을 검색 하려면 LRANGE 명령 을 사용하기 만하면 됩니다.

elements = redis.lrange( "supplier_id", 0, -1 )

목록 자체를 변경하지 않고 목록의 모든 항목을 반환합니다.


귀하의 질문에 대해 약간 불분명하지만 supplier_id가 숫자이면 왜 사용하지 ZSET않습니까?

다음과 같이 값을 추가하십시오.

ZADD suppliers 1 "data for supplier 1"  
ZADD suppliers 2 "data for supplier 2"  
ZADD suppliers 3 "data for supplier 3"  

그런 다음 다음과 같이 모든 항목을 제거 할 수 있습니다 (공급 업체 3은 제외).

ZREMRANGEBYSCORE suppliers -inf 2

또는

ZREMRANGEBYSCORE suppliers -inf (3

그것은 또한 당신이 그것을 읽고 싶다면 (공급 업체 ID로) 매우 빠른 액세스를 제공합니다.

도움이 되었기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/10703019/redis-fetch-all-value-of-list-without-iteration-and-without-popping

반응형