【发布时间】:2012-08-30 21:36:19
【问题描述】:
我正在做的是避免请求命中 Django 并直接从 nginx 提供缓存数据。
相关问题:Django staticgenerator vs CACHE_BACKEND
说到这个,似乎有两种选择:
https://github.com/torchbox/django-nginx-memcache
https://github.com/mrj0/staticgenerator - 这个似乎更容易使用
在尝试了 django-nginx-memcache 之后,我发现了一些缺点:
- 没有从 django 提供缓存内容的回退(可以修复)。
- nginx 必须重新编译以生成 url 的 md5 总和(我认为这无法修复)。
- 编辑: 看了其他解决方案(如:http://soyrex.com/articles/django-nginx-memcached/)后发现似乎没有必要使用md5 cache_keys。也许这应该是一个选择。
- 如果能够定义应缓存的 url 模式列表,那就太好了。到目前为止,只有装饰器可用(可以修复)。
- 在我看来,代码应该更多地模仿标准的 django 缓存后端,使用 UpdateCacheMiddleware 和 FetchFromCacheMiddleware。这将使存在标准 django 缓存解决方案的地方更容易实现 nginx 缓存。它还可以解决问题 #1(可以修复)。
- 模块的奇怪命名。虽然项目名为 django-nginx-memcache,但包名为 Django-Memcache-for-Nginx,应用程序名为 nginx_memcache 以包含在django installed_apps(可以修复)。
哪个更快?
您会使用哪一个?为什么?
我应该解决 django-nginx-memcache 的问题还是 staticgenerator 更好?
【问题讨论】:
标签: django caching nginx memcached