Я делаю функцию для удаления ключа, начиная с некоторого текста. Это поможет мне удалить динамические ключи.
список сообщений в кэше
def get_posts(tag, page=1):
cached_data = cache.get('list_posts_home_tag%s_page%s' % (tag, page))
if not cached_data:
cached_data = mycontroller.get_posts(tag, page)
cache.set('list_posts_home_tag%s_page%s' % (tag, page), cached_data, 60)
return cached_data
при обновлении любого сообщения звоните flush_cache
def update(data):
response = mycontroller.update(data)
flush_cache('list_posts_home')
return response
flush_cache для удаления любого динамического кэша
def flush_cache(text):
for key in list(cache._cache.keys()):
if text in key:
cache.delete(key.replace(':1:', ''))
Не забудьте импортировать кеш из django
from django.core.cache import cache