对于我的项目,我有一个这样的缓存设置:nginx_cache(60*60)(MyView.as_view())
function sets a key in memcached
ofnginx./URI
Nginx 在决定从缓存返回页面或将请求发送到我的应用程序之前,会在 memcached 中查找该键。我遇到的问题是创建具有代数的缓存键,以便我可以使键组无效。
例如,对我来说理想的缓存键是group_nameX:generationY:URL
......
Nginx 必须在不与 python 应用程序通信的情况下找出生成密钥。
这给我留下了一个人为的想法:通过 django 设置三个缓存值;
- 组名,无需与应用程序对话即可被 nginx 找到
- 该特定组名的世代号
- 完整的缓存键/输出(html 页面)
在 nginx 方面,我想我需要使用LuaModule
and Memc
。我从来没有使用过非香草 nginx,所以对我来说最好避免使用它,但我不知道我是否有选择。
http://wiki.nginx.org/HttpLuaModule#ngx.location.capture
http://wiki.nginx.org/NginxHttpMemcModule
我需要设置两个使用 Memc 获取密钥的内部位置指令。
我的主要位置指令会...
$genkey set_by_lua
(捕获内部位置 get_key_name)$gen_number set_by_lua
(捕获内部位置 get_key_number_from_name)$memcached_key "$genkey-$gen_number-$request_uri"
有没有办法简化这个缓存设置?有我不知道的普遍接受的方法吗?(可能 - 我正在编造这个!)