Nginx的memcachecaching和失效

我们目前使用NGINX作为我们的服务器,我们使用memcache来cachingdb查询以及php中的页面。

我们有一个版本编号系统,在任何更新或插入的情况下,这个版本号都会被提升,结果是每个密钥都附加了这个版本号,所以memcache总是会获取新的数据。 它对我们很有用,因为读写%split是80/20%,所以大部分时间memcache将会返回数据,而不会触及数据库。

现在我们打算把这个caching策略移到服务器级别,NGINX和memcache模块一起使用请求URI和版本号cachingGET请求。

只需要一些反馈,我可以如何实现这一点

  • 我可以获取存储在NGINX的memcache中的这个版本号吗? (这将被用来将其附加到请求uri)
  • 我如何处理login用户? (我可以只为一个login用户设置一个cookie,并检查这个cookie是否存在于nginx中,如果它只是将请求传递给后端而不是memcache)

Solutions Collecting From Web of "Nginx的memcachecaching和失效"

1)不幸的是,你不能用“vanila”nginx做到这一点。 但是有一些第三方的nginx模块可以帮助你实现。 请看看

增强memcached协议支持https://github.com/bpaquet/ngx_http_enhanced_memcached_module http://wiki.nginx.org/NginxHttpMemcmodulee

价值评估https://github.com/vkholodkov/nginx-eval-module

我想建议你给github.com/agentzh/ngx_openresty(有很多补丁和模块的nginx)的机会。关于NGINX脚本代理的很好的演示文档.zh.org/misc/slides/nginx-conf-scripting/nginx-conf-scripting。 HTML

2)在互联网上有很多例子,如何禁用缓存记录用户

if ($http_cookie ~* "auth_user") { # do some thing, set flag or so }