在Django应用中实现memcached需要哪些步骤?

2 投票
1 回答
585 浏览
提问于 2025-04-18 08:10

我有一个现有的Django网页应用,它使用MySQL数据库,没有使用memcaching。现在我想实现memcaching,以提高这个网站的响应速度。我在这里看到了相关的说明。

不过,这些说明让我有一些没搞明白的问题。设置好memcached服务器后,我只需要做这些就能让memcache工作吗?还是说我需要在settings.py以外的地方修改我的代码?Django会在后台自动处理所有的memcaching操作吗,比如在读取或写入模型的时候?(如果是这样,那就太棒了!)我怎么能看到memcaching对数据库访问次数的改善效果呢?

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_toolbar的缓存面板在将来也可以帮助你。

需要注意的是,Django的查询集有一个内置的内部缓存,但这与缓存框架没有关系。

进一步阅读:

撰写回答