Django Nginx Memcached集成。
项目描述
Djanginxed
Django Nginx Memcached集成。
提供了一个视图装饰器,在Memcached中缓存内容,以便通过Nginx轻松检索。缓存键由完整请求路径的MD5值(包括GET参数)组成。
安装
安装或添加djanginxed到您的Python路径。
根据Django的缓存框架文档中的描述正确设置Memcached。
可选地,在您的Django设置文件中设置CACHE_MIDDLEWARE_KEY_PREFIX设置 - 如果缓存是使用同一Django安装跨多个站点共享的,请将其设置为站点的名称或其他对Django实例唯一的字符串,以防止键冲突
CACHE_MIDDLEWARE_KEY_PREFIX = "site1"
使用set_hash模块安装Nginx。此模块是必需的,以便在Nginx内部计算MD5缓存键
set_md5 $memcached_key $request_uri;
配置Nginx以直接从Memcached检索页面,即
location / { default_type text/html; set_md5 $memcached_key $request_uri; memcached_pass 127.0.0.1:11211; error_page 404 405 500 @django; } location @django { fastcgi_pass 127.0.0.1:7000; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param REQUEST_URI $request_uri; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param QUERY_STRING $query_string; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_NAME $server_name; fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; fastcgi_param PATH_INFO $fastcgi_script_name; }
可选地,当使用缓存键前缀时,将其包含在Nginx $memcached_key生成中
set_md5 $memcached_key site1$request_uri;
用法
装饰器
djanginxed.decorators.cache.cache_page
《cache_page》装饰器用于在Memcached中缓存视图响应内容,适用于Nginx的查找。《cache_page》接受一个参数:缓存超时时间,单位为秒。
示例
from djanginxed.decorators.cache import cache_page @cache_page(60 * 15) def my_view(request): ...
这将把视图的响应字符串在Memcached中缓存15分钟(60 * 15),缓存键由完整的请求路径生成。
注意:生成的HttpResponse对象的content值存储在Memcached中,而不是实际的HttpResponse对象。
《cache_page》还可以接受一个可选的关键字参数,即《key_prefix》,其工作方式与中间件的《CACHE_MIDDLEWARE_KEY_PREFIX》设置相同。它可以这样使用
@cache_page(60 * 15, key_prefix="site1") def my_view(request): ...
变更日志
0.0.5
增加了使用自定义缓存键生成器的功能。
0.0.4
测试和润色。
0.0.1
初始发布。
项目详情
下载文件
下载适合您平台的项目文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发
djanginxed-0.0.5.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | e13a0ce1177a79e97d98311e1066b3c08428e154c7fbad2cc17596bcb3b80dc0 |
|
MD5 | 6f02e1cc2be112d04b009fee5167597b |
|
BLAKE2b-256 | 0b53c0fc6bfc62951e96ad90d40d3819d8bcfbc02fa3439e66c18899a6c16aaa |
djanginxed-0.0.5-py2.6.egg的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | ec4d65b7a3521da18d7e4a2902530f8853a332d00e19c3f06707c4defdb02e63 |
|
MD5 | c33d7fcdb5336f4aa7a388a5166a4c60 |
|
BLAKE2b-256 | 137695573c8392928b8f1f1817b3c8a1f7db30c3bf1dfc5540af7eba88ef1f1a |