- Fix default expire for memcached. (#13)

- Update default key builder. (#12)
This commit is contained in:
long2ice
2021-03-20 14:42:29 +08:00
parent c665189d90
commit 1d0c245a70
5 changed files with 149 additions and 127 deletions

View File

@@ -16,7 +16,7 @@ class MemcachedBackend(Backend):
return await self.mcache.get(key, key.encode())
async def set(self, key: str, value: str, expire: int = None):
return await self.mcache.set(key.encode(), value.encode(), exptime=expire)
return await self.mcache.set(key.encode(), value.encode(), exptime=expire or 0)
async def clear(self, namespace: str = None, key: str = None):
raise NotImplementedError

View File

@@ -1,3 +1,4 @@
import hashlib
from typing import Optional
from starlette.requests import Request
@@ -14,6 +15,8 @@ def default_key_builder(
):
from fastapi_cache import FastAPICache
prefix = FastAPICache.get_prefix()
cache_key = f"{prefix}:{namespace}:{func.__module__}:{func.__name__}:{args}:{kwargs}"
prefix = f"{FastAPICache.get_prefix()}:{namespace}:"
cache_key = (
prefix + hashlib.md5(f"{func.__module__}:{func.__name__}:{args}:{kwargs}").hexdigest()
)
return cache_key