반응형
Python에서 redis 데이터베이스를 활용할 때,
특정 key에 대한 유효 시간인 ttl을 설정하는 방법을
간략한 예제를 통하여 다루어보도록 하겠습니다.
다음 예시는 redis 데이터베이스의 유효 시간을 1분으로 설정하는 예시입니다.
import redis
# redis 데이터베이스 연결
r = redis.Redis(host='localhost', port=6379, db=0)
r.set('my_key', 'my_value') # my_key - my_value를 쌍으로 가지는 데이터 저장
r.expire('my_key', 60) # 키 'my_key'의 TTL을 1분으로 설정(초 단위)
위의 예제처럼 데이터베이스의 expire 메소드를 통하여
해당 key에 대해서 원하는 유효 시간을 초 단위로 설정할 수 있습니다.
이 기능을 응용하여, 1일 단위로 timestamp 값을 통하여
새로운 key를 생성하는 예시는 다음과 같습니다.
(key가 없다면 ttl 1일로 설정, 있다면 데이터만 세팅)
from datetime import datetime
import redis
import time
# redis 데이터베이스 연결
r = redis.Redis(host='localhost', port=6379, db=0)
# 현재 타임스탬프를 기준으로 날짜에 맞는 key 생성
def get_daily_key(ts):
date = datetime.fromtimestamp(float(ts))
key = f'daily-{date.year}-{date.month:02d}-{date.day:02d}'
return key
ts = time.time()
key = get_daily_key(ts)
data = '데이터로 저장할 값'
# key의 존재 여부를 검사하여 없다면 생성하면서 ttl 설정
if r.exists(key):
r.set(key, data)
else:
r.set(key, data)
r.expire(key, 86400) # 1일을 기준으로 ttl 설정
'Python > Utils' 카테고리의 다른 글
파이썬에서 값 암호화 해싱 및 검증 방법(bcrypt 모듈) (0) | 2024.05.02 |
---|---|
파이썬 가상 환경 도구 poetry 특징 및 명령어 정리 (0) | 2024.04.04 |
파이썬 API 호출 동시에 여러 번 수행 방법(aiohttp 비동기 호출 응용) (0) | 2024.03.19 |