python으로 redis 값 범위 조회 ( zrange )

2021. 5. 25. 10:31it

반응형

 

redis input data



0. Sorted Sets

Sorted Set은 주로 sort가 필요한 곳에 사용이 된다.

주로 필자는 redis에서 데이터의 범위 조회에 사용을 한다. (부분적으로 사용 가능 )

관련 예제는 아래 샘플 코드에서 확인이 가능한다.



sorted set은 하나의 key에 여러가지 score와 value로 구성이 된다.

value는 score로 sort가 이루어 진다.

그리고 value값은 중복이 생기면 기존 값은 새로운 값으로 update 쳐 진다.

( 중요 이슈가 될 수 있다. )



음, 추가로 더 설명할게 있다면, value는 sort set에서 member 불린다.


아래 링크를 찾아보면 다 자세한 함수들이 나온다.


http://redisgate.kr/redis/command/zsets.php

 

SORTED SETS Introduction Redis

zsets_intro SORTED SETS Introduction 소개 Sorted Sets는 key 하나에 여러개의 score와 value로 구성됩니다. Value는 score로 sort되며 중복되지 않습니다. score가 같으면 value로 sort됩니다. Sorted Sets에서는 집합이라는

redisgate.kr


그럼 소스 코드를 확인해보겠다.

1. redis connection

Redis connection input ( host, port, database )

import redis


r = redis.Redis(host='localhost', port=6379, db=15)



2. redis zadd 값 넣기

zadd input : ( key: { value, Score(int) } )

r.zadd("tagA", {47.3 : 202001010003, 182.124 : 202001010004, 234.5 : 202001010005} )



3. redis 조회하기

zrangebyscore input : ( key, FromScore(int), ToScore(int) )

r.zrangebyscore ("tagA", "0", "(202001010002")



4. redis 역 순으로 조회하기

zrevrangebyscore input : ( key, FromScore(int), ToScore(int) )

r.zrevrangebyscore("tagA", "(202001010004", "-9999999")



5. redis 조회 limit 걸기

zrevrangebyscore input : ( key, FromScore(int), ToScore(int), start, num )

r.zrevrangebyscore("tagA", "(202001010004", "-9999999", start=0, num=1 )



6. zrange count 확인 하는 방법

zcount input : (key, FromScore(int), ToScore(int) )

r.zcount("tagA", -math.inf, math.inf )




7. zrange 삭제 하는 방법

7-1. 삭제해야 하는 스코어 찾아내기

r.zrange("tagA", 0, 0, withscores=True)
remove_data = r.zrange("tagA", 0, 0, withscores=True)[0][1]
print( remove_data )

>> 202001010000.0


7-2. zrange 삭제 하는 방법

zremrangebyscore input : ( key, FromScore(int), ToScore(int) )

r.zremrangebyscore("tagA", remove_data, remove_data)

 

데이터 삭제 결과

 

반응형