From e8193b5c22837485f4d2815ee90dad38b156e4dd Mon Sep 17 00:00:00 2001 From: hackjammer Date: Sun, 15 Jan 2023 21:54:16 +0000 Subject: [PATCH] enabled redis in cluster mode --- fastapi_cache/backends/redis.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/fastapi_cache/backends/redis.py b/fastapi_cache/backends/redis.py index 6d70627..0088f4f 100644 --- a/fastapi_cache/backends/redis.py +++ b/fastapi_cache/backends/redis.py @@ -1,16 +1,18 @@ from typing import Optional, Tuple -from redis.asyncio.client import Redis +from redis.asyncio.client import AbstractRedis +from redis.asyncio.cluster import AbstractRedisCluster from fastapi_cache.backends import Backend class RedisBackend(Backend): - def __init__(self, redis: Redis): + def __init__(self, redis: AbstractRedis): self.redis = redis + self.is_cluster = isinstance(redis, AbstractRedisCluster) async def get_with_ttl(self, key: str) -> Tuple[int, str]: - async with self.redis.pipeline(transaction=True) as pipe: + async with self.redis.pipeline(transaction=not self.is_cluster) as pipe: return await (pipe.ttl(key).get(key).execute()) async def get(self, key: str) -> Optional[str]: @@ -25,4 +27,4 @@ class RedisBackend(Backend): return await self.redis.eval(lua, numkeys=0) elif key: return await self.redis.delete(key) - return 0 + return 0 \ No newline at end of file