[REDIS] 레디 스 만료 접두어 키를 저장
REDIS레디 스 만료 접두어 키를 저장
주요 접두어로 시간의 X 금액을 만료 값을 저장하려고
나는 레디 스를 사용하여 사용하고 있습니다. 나는 현재 hset를 사용하여 값을 저장하고있어
import redis
r = redis.StrictRedis('localhost')
for i in range(10):
r.hset('name', i, i)
print(r.hgetall('name'))
내가 개별적으로 각 키를 저장하는 것 같은 다른이 각 키, 시간이 만료합니다.
이걸 어떻게해야합니까?
해결법
-
==============================
1.이것은 직접 수행 할 수 없습니다. 당신은 전체적으로 hset에 만료을 추가 할 수 있지만 개별 필드에 있습니다. 이 작업을 수행하려면 시간이 만료 될 때까지 시간 (초)입니다 r.expire ( '이름', 시간)를 호출 할 수 있습니다.
이것은 직접 수행 할 수 없습니다. 당신은 전체적으로 hset에 만료을 추가 할 수 있지만 개별 필드에 있습니다. 이 작업을 수행하려면 시간이 만료 될 때까지 시간 (초)입니다 r.expire ( '이름', 시간)를 호출 할 수 있습니다.
대안으로, 대신 hset 세트 사용할 수 있습니다 :
for i in range(10): r.set('name:' + str(i), i, ex=time_to_expire_s)
'이름'(예를 들어) 당신이로 시작하는 모든 키를 나열하는 좋은 방법이 없습니다 때문에, 일부 기능을 데려 갈 것이다, 그러나 당신이 독립적으로 키 만료를 설정할 수 있습니다.
두 번째 옵션으로, 당신은 hset의 값의 만료를 설정할 수 있습니다. 이것은 클라이언트 측 로직을 필요로하며, 레디 스는 당신을 위해 말소하지 않을 것이다; 하지만 당신은 뭔가를 같이 할 수있는 :
for i in range(10): r.hset( 'name', i, json.dumps({ 'value': i, 'expiration': time.time() + time_to_expire_s }) )
혹시 그 만료 과거에 값을 읽으면 그리고, 당신은이 캐시 미스로 간주. 당신은 무료로 메모리에 순서대로 키를 만료하려는 경우에 도움이되지 않습니다,하지만 당신의 목표를 가지고있는 경우 키는 정확성 이유는 어떤 종류의, 당신이 힘 작업에 만료됩니다.
from https://stackoverflow.com/questions/36000981/storing-keys-with-prefix-that-expire-in-redis by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 어떻게 레디 스 'ZRANK에 같은 점수에 대한 동일한 순위를 얻으려면? (0) | 2020.01.08 |
---|---|
[REDIS] GKE 캔트 비활성화 투명 거대한 페이지는 ... 권한이 거부 (0) | 2020.01.08 |
[REDIS] nodejs, 레디 스. 키가 존재하는지 확인하고 새하지 않을 경우 생성 (0) | 2020.01.08 |
[REDIS] 레디 스 클러스터에서 루아를 사용하거나 난 그냥 해시 태그를 전달할 수 있습니다 때 전체 키 이름을 지정해야 하는가? (0) | 2020.01.08 |
[REDIS] 레디 스 - 어떻게 구성 사용자 정의 변환에 (0) | 2020.01.08 |