2

我有我现有的 Django Web 应用程序,它使用 MySQLDB 而没有 memcaching。我想实施 memcache 来提高这个站点的响应能力。我在这里看到了说明。

但是,这些说明给我留下了一些未解决的问题。在我设置 memcached 服务器后,我需要做的就是让 memcache 工作吗?或者我是否需要更改 settings.py 之外的任何代码?每当读取或写入模型时,Django 是否可以很好地为我处理所有幕后的内存缓存操作?(如果是这样,那太酷了!)我怎样才能看到内存缓存对数据库访问次数的改进?

4

1 回答 1

3

你所做的只是一个缓存后端的设置。

为了从缓存中受益,您需要找到合适的位置并对性能产生积极影响:您的视图模板……您可以缓存整个视图、模板、模板片段等。

如果您想要一些自动化来帮助您,请查看Johnny Cache包:

Johnny Cache 是 django 应用程序的缓存框架。它与 django 缓存抽象一起工作,但在开发时特别考虑了 memcached 的使用。它的主要特点是 Django 的 ORM 上的一个补丁,它以一致的方式自动缓存所有读取。

django-cache-machine包装:

Cache Machine 通过 ORM 为 Django 模型提供自动缓存和失效。

还有一个有趣的项目名为django-cacheops,旨在改进 Django ORM 缓存,但它使用Redis后端。

此外,django_debug_toolbars 缓存面板可以在将来为您提供帮助。

请注意,django 查询集有一个内置的内部缓存,但它与缓存框架无关。

进一步阅读:

于 2014-06-01T03:44:37.910 回答