打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
django-cache-machine-Django的自动缓存和失效的python库

django cache machine是Django的自动缓存和失效的python库。

  较早版本的“缓存计算机”要求您使用自定义的缓存后端。这些不再需要,它们已从高速缓存机中删除,现在使用标准的Django缓存后端。

通过COUNT查询

使用QuerySet.count()可以调用缓存,但是这样的缓存不能可控的失效。高速缓存机必须完全选择才能找到对象键,这可能比您要提取的数据要多得多。我建议缓存超时时间较短;足够长的时间来避免重复的查询,但是足够短的时间以至于过时的计数将不是什么大问题。

CACHE_COUNT_TIMEOUT = 60  # seconds, not too long.

默认情况下,QuerySet.count()不会调用缓存。只有将CACHE_COUNT_TIMEOUT设置为caching.base.NO_CACHE以外的值时, 它们才会被缓存。

缓存管理器

要为模型启用缓存,请将添加CachingManager到该类并从继承CachingMixin。如果要使相关查找(外键)进入缓存,则CachingManager必须是默认管理器。如果您有多个应该缓存的管理器,请CachingQuerySet从另一个管理器的 get_queryset方法返回a而不是子类化CachingManager,因为这将多次连接post_save和post_delete信号。

最小缓存模型如下所示:

每当您运行查询时,CachingQuerySet都将尝试在缓存中查找该查询。查询由键入{prefix}:{sql}。如果存在,我们返回缓存的结果集,每个人都很高兴。如果查询不在高速缓存中,则执行运行数据库查询的常规代码路径。随着结果集中的对象被迭代,它们被添加到一个列表中,一旦迭代完成,该列表将被缓存。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
第十一章 缓存内容
Django 缓存系统
Python学习教程(技术分享):Django项目缓存优化
运行python manage.py test会出现“达到最大递归深度”错误
django缓存
缓存机制
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服