handle DB and TTL for redis KV store

This commit is contained in:
shrinitgoyal 2025-08-19 14:54:10 +05:30
parent 46ff302d87
commit e2d295ae40
2 changed files with 7 additions and 2 deletions

View file

@ -31,10 +31,12 @@ class RedisKVStoreConfig(CommonConfig):
type: Literal[KVStoreType.redis.value] = KVStoreType.redis.value
host: str = "localhost"
port: int = 6379
db: int = 0
ttl: int = None
@property
def url(self) -> str:
return f"redis://{self.host}:{self.port}"
return f"redis://{self.host}:{self.port}/{self.db}"
@classmethod
def pip_packages(cls) -> list[str]:

View file

@ -26,7 +26,10 @@ class RedisKVStoreImpl(KVStore):
async def set(self, key: str, value: str, expiration: datetime | None = None) -> None:
key = self._namespaced_key(key)
await self.redis.set(key, value)
if self.config.ttl:
await self.redis.set(key, value, ex=self.config.ttl)
else:
await self.redis.set(key, value)
if expiration:
await self.redis.expireat(key, expiration)