반응형
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로) 매우 빠른 액세스를 제공합니다.
도움이 되었기를 바랍니다.
반응형
'Development Tip' 카테고리의 다른 글
iOS 웹 앱 (특히 iPad 용)에 대한 여러 "apple-touch-startup-image"해상도? (0) | 2020.12.10 |
---|---|
R을 사용하여 gz 파일 압축 해제 (0) | 2020.12.10 |
UIButton 이벤트. (0) | 2020.12.10 |
개발 및 프로덕션에서 다른 Procfile 사용 (0) | 2020.12.10 |
Passport로 Supertest 요청을 인증하는 방법은 무엇입니까? (0) | 2020.12.10 |