首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用django-cacheops从Redis中删除缓存查询

使用django-cacheops从Redis中删除缓存查询
EN

Stack Overflow用户
提问于 2019-12-26 12:31:49
回答 1查看 1.3K关注 0票数 0

我使用django-cacheops缓存查询。并且用不同的API调用更新同一个实例中的一些,现在我想从Redis中删除这个缓存的查询。这是API-1

代码语言:javascript
运行
复制
users = User.objects.cache().get(user_id = user_id)

现在我正在用API-2更新我的用户。

代码语言:javascript
运行
复制
user = request.user
if user.is_sms_read:
    user.is_sms_read = False
else:
    user.is_sms_read = True
user.save()

现在我用相同的API-1获取数据,它给我缓存的数据。

我想,如果我调用API-2,它应该清除缓存并获取新数据。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-26 13:12:23

django-cacheops的官方文档指出,它监听模型信号并使“适当的查询”无效。但是,它不会使似乎不受更改影响的查询失效。在我看来,这是一个bug,因为API-1的查询集应该会受到API-2的更改的影响。但同时,您也可以尝试通过以下方法强制使缓存无效

代码语言:javascript
运行
复制
from cacheops import invalidate_obj

user = request.user
if user.is_sms_read:
    user.is_sms_read = False
else:
    user.is_sms_read = True
user.save()

invalidate_obj(user)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59488549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档