【发布时间】:2021-07-21 15:50:32
【问题描述】:
我的最终目标是为我想要的每一个函数都有一个两层缓存(可能需要一个自我实现的装饰器) 我有多个运行同一个 Django 服务器的虚拟机。第一个缓存层是内存,第二层是VM之间共享的Redis。 流程如下,一个函数被修饰为两层缓存。在函数调用的情况下,服务器会在其内存缓存中查找项目。如果找不到,则会检入共享的 Redis。
我怎样才能做到这一点?
我已经有了这个代码sn-p:
from cachetools.func import ttl_cache
from cache_memoize import cache_memoize
@ttl_cache(maxsize=settings.A_NUMBER, ttl=settings.CACHE_TIMEOUT)
@cache_memoize(settings.CACHE_TIMEOUT)
def my_fucn(arg1, arg2):
some logic here.
Django 设置:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': env.str('REDIS_MASTER'),
}
我读过这个 (How to use 2 different cache backends in Django?) 但我不知道是否可以将它们用作装饰器。
谢谢!
【问题讨论】:
标签: python django caching redis memcached