我正在使用memcached作为后端的站点全局缓存。当底层数据库对象更改时,我希望使缓存中的页面失效。
如果页面名称更改,则我将使整个缓存失效(因为它会影响每个页面上的导航)。笨拙但足以满足我的需求。
如果只是页面内容更改,则我想使该页面的缓存失效。
有没有一种简单的方法来实现这个功能?
如果页面名称更改,则我将使整个缓存失效(因为它会影响每个页面上的导航)。笨拙但足以满足我的需求。
如果只是页面内容更改,则我想使该页面的缓存失效。
有没有一种简单的方法来实现这个功能?
信号
。post_save
信号,并使用回调函数使缓存中的该页面无效。from django.core.signals import post_save
from django.core.cache import cache
def invalidate_cache(sender, **kwargs):
# invalidate cache
cache.delete(sender.get_absolute_url()) # or any other pertinent keys
post_save.connect(invalidate_cache, sender=UnderlyingModel)