Django缓存在开发中工作,但不在生产中

时间:2015-01-25 20:49:42

标签: python django caching nginx gunicorn

我有一个django项目,它利用django缓存(默认的本地内存缓存)来存储大型查询集的其余部分,以便以后检索。这个系统按照我的预期开发(使用内置的django webserver),但在生产(nginx和gunicorn)中,缓存似乎根本不起作用。

我找不到任何说明在生产环境中使缓存工作所需的特定内容。感谢所有建议,谢谢。

default_cache = get_cache('default')
default_cache.clear()
default_cache.set(request.user.id, object_list, CACHE_AGE)

1 个答案:

答案 0 :(得分:1)

本地内存缓存并不适合生产。它正是它所说的:当前流程的本地化。这意味着在一个多进程环境中,您的生产设置几乎肯定会在一个进程中缓存,在一个进程中缓存的内容在另一个进程中无法显示。请注意docs具体提到这一点。

安装redis或memcached并将它们用作缓存后端。