django - nginx 缓存,staticgenerator 与 memcached

标签 django caching nginx memcached

我正在做的是避免请求到达 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 和(我认为这无法修复)。
  • 如果能够定义一个应该被缓存的 url 模式列表,那就太好了。到目前为止,只有装饰器可用(可以修复)。
  • 在我看来,代码应该更多地模仿带有 UpdateCacheMiddlewareFetchFromCacheMiddleware 的标准 django 缓存后端。这将使在存在标准 django 缓存解决方案的情况下更容易实现 nginx 缓存。它还可以解决问题 #1(可以修复)。
  • 模块的奇怪命名。虽然项目名为 django-nginx-memcache,但包名为 Django-Memcache-for-Nginx,应用 nginx_memcache 包含在django installed_apps(可以修复)。

哪个更快?
您会使用哪一个?为什么?
我应该解决我在使用 django-nginx-memcache 时遇到的问题,还是 staticgenerator 更好?

最佳答案

这似乎回答了我所有的问题,并提供了比 django-nginx-memcache 更优雅的解决方案,即修补 django 缓存系统:http://www.willmcgugan.com/blog/tech/2009/3/1/fast-caching-with-django-and-nginx/

来自页面评论的基准:

静态内容比使用 nginx 从内存缓存提供服务快近 4 倍。

请求速率:6243.8 req/s(0.2 ms/req)(静态 html)

请求速率:2285.5 req/s(0.4 ms/req)(memcache 中相同的 html)

我想我会选择 staticgenerator,但请随时发表您的想法。

编辑:

我意识到我正在并行运行两个网络服务器,如果我使用 staticgenerator,我需要一种同步缓存数据的方法。我想我可以 fork 它并让它通过网络在两台服务器上写入文件。对此有什么想法吗?

关于django - nginx 缓存,staticgenerator 与 memcached,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12293759/

相关文章:

python - django celery 终止任务的子进程

php - CakePHP Cache::write() 键可以按模型分组吗?

python - ./manage.py runserver 使用 https

javascript - 我可以将 jQuery.post() 与 LiveServerTestCase 一起使用吗?

django - 表单中的条件字段

android - Retrofit 是否缓存授权请求

javascript - jQuery如何读取json缓存?

php - 我应该阻止 HTTP 1.0 请求吗?

c++ - 使用 Nginx HTTP 解析器的 API

django - CSRF验证失败。请求被中止。当我发送 POST 请求时