在Django应用中实现memcached需要哪些步骤?
我有一个现有的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的查询集有一个内置的内部缓存,但这与缓存框架没有关系。
进一步阅读: