问题标签 [django-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7182 浏览

django - Django - 如何使按视图缓存无效?

我想使用per-view cache。我知道它是如何工作的,但问题出在哪里?如何使该缓存无效?每次更改数据库记录时,我都必须这样做。没有关于如何做到这一点的信息:/

0 投票
2 回答
3267 浏览

django - Django:使变量持久化

基本上我想在 Django 中创建一个变量,但我不知道如何。

更准确地说,我希望用户在登录站点时选择一个特定的项目(例如通过 ChoiceField)。然后,只要他不选择另一个项目,站点就“知道”他选择了哪个项目,因此他可以执行与该项目相关的一些操作。

这怎么可能?会话变量是要走的路吗?或者也许是缓存系统?一些提示将不胜感激:)

如果我不够清楚,请告诉我

0 投票
1 回答
251 浏览

django - 在 Django 缓存中高效存储大表

我使用 Django 和 jqGrid 并通过 AJAX 加载页面。有时,查询非常复杂,页面加载速度非常慢,因为远页面要慢得多(这是意料之中的,结果通常超过 100k 个对象)。我认为结果缓存会解决这个问题,增加了第一页的加载时间,但随后强烈加速了后续页面的加载。

相反,它使第一页的加载速度非常慢,甚至后续页面也需要大量时间(在标准 PC 上为 11 秒)。我正在使用 locmem 缓存后端。有任何想法吗?为了进行比较,我尝试将结果存储在全局字典中,效果要好得多(后续页面只需 1 秒),但我听说这不是一种安全的方法。

有任何想法吗?

0 投票
1 回答
1130 浏览

django - 哪个 Django 缓存系统更快:文件系统还是数据库?

我知道这两者之间不一定像 Memcached 和 DB/文件系统之间那样有明确的界限,但我想知道什么条件会导致文件系统比 DB 缓存更快。而且,相反,在什么情况下数据库缓存会比文件系统快?

0 投票
1 回答
1921 浏览

django - Django 多个缓存后端

我想在一个 django 项目中使用多个缓存引擎。在示例中,我使用 sorl.thumbnail,它生成了许多 sql 查询来获取/设置模型图像的缩略图。为了缓存这个查询,我使用 memcached 后端。但是,其他缓存停止工作,我的意思是模板缓存{% cache ... %},以及通过 API cache.get()、cache.set()。我想成为这样的人

}

如何在模板中使用“基于文件”的缓存?因为 {% cache %} 使用 memcached 后端,它会产生很多查询,尤其是使用树(django-mptt)

0 投票
1 回答
1153 浏览

django - 异步数据获取和缓存处理

我正计划部署一个动态站点,该站点需要在后台定期完成某些任务,比如说每隔一两个小时。我需要输出的数据完全取决于这些查询的结果。

现在,问题是这些任务需要一定的时间,例如 8-10 分钟:所以如果用户请求一个页面,因此某个视图被调用,而该任务仍在进行中,一切都会变糟。

所以,这里的问题是:我需要实现什么来处理这个问题?我一直在搜索,发现了有关 celery 的信息,但我不明白如何使用它来解决上述问题,并可能实现一个缓存系统,在任务尚未完成时进行干预。

0 投票
0 回答
44 浏览

django - 从满足给定条件的缓存中删除许多对象

我已经根据其他模型 Y 和用户 U 构建了模型 X。X 存储在 django-cache 中的键“X_Y.id_U.id”下。现在我想从缓存中删除所有绑定到 Y 的模型 X(对于所有用户)。我怎样才能做到这一点?

0 投票
1 回答
5762 浏览

python - django querysets + memcached:最佳实践

试图了解在 django 低级 cache.set() 期间发生了什么特别是有关查询集的哪些部分存储在 memcached 中的详细信息。

首先,我是否正确解释了 django 文档?

  • 查询集(python 对象)拥有/维护自己的缓存
  • 对数据库的访问是惰性的;即使 queryset.count 是 1000,如果我为 1 条记录执行 object.get,那么对于 1 条记录,dbase 只会被访问一次。
  • 当通过 apache prefork MPM 访问 django 视图时,每次特定守护程序实例 X 最终调用包含诸如“tournres_qset = TournamentResult.objects.all()”之类的特定视图时,这将导致每次都产生一个新的tournres_qset 对象被创建。也就是说,任何可能已经被前一次(tcp/ip)访问的 tournres_qset python 对象内部缓存的东西,根本不会被新请求的 tournres_qset 使用。

现在是关于在视图中将内容保存到 memcached 的问题。假设我在视图顶部添加了这样的内容:

在 cache.set() 期间存储了什么?

  • 整个查询集(python 对象)是否被序列化并保存?

  • 由于尚未使用查询集来获取任何记录,这是否只是浪费时间,因为实际上没有特定记录的内容保存在内存缓存中?(任何未来的请求都会从 memcache 中获取 queryset 对象,该对象将始终以空的本地查询集缓存重新开始;将始终访问 dbase。)

  • 如果上述情况属实,那么我是否应该总是在视图末尾重新保存查询集,在整个视图中使用它来访问一些记录之后,这将导致查询集的本地缓存得到更新,并且应该总是被重新保存到memcached?但是,这总是会导致再次序列化查询集对象。这么多可以加快速度。

  • 或者,cache.set() 是否强制 queryset 对象迭代并从 dbase 访问所有记录,这些记录也会保存在 memcache 中?即使视图只访问查询集的子集,一切都会被保存?

我看到了各个方向的陷阱,这让我认为我
误解了很多事情。

希望这是有道理的,并感谢对一些“标准”指南的澄清或指示。谢谢。

0 投票
1 回答
705 浏览

django - Django 低级缓存 API 不起作用

我正在尝试request.POST使用低级缓存 API 缓存字典,但它似乎不起作用。我得到的不是缓存的字典,而是None值。

这是我尝试过的:

设置:

运行代码时没有异常。

设置或unix有问题memcached.sock吗?

0 投票
1 回答
1560 浏览

django - 如何在 Django 中显式重置模板片段缓存?

我正在为我的 Django 应用程序使用 Memcache。

在 Django 中,开发人员可以使用模板片段缓存来仅缓存模板的一部分。https://docs.djangoproject.com/en/dev/topics/cache/#template-fragment-caching

我想知道是否有办法在views.py中显式地更改模板片段缓存部分的值。例如,除了模板片段缓存之外,是否可以使用类似于 cache.set("sidebar", "new value") 的方法?

感谢您的帮助。