Caching Nginx memcache缓存和失效

Caching Nginx memcache缓存和失效,caching,nginx,memcached,php,Caching,Nginx,Memcached,Php,我们目前使用NGINX作为服务器,使用memcache缓存数据库查询以及php中的页面 我们有一个版本编号系统,在任何更新或插入过程中,这个版本号都会增加,因此当每个键都附加了这个版本号时,memcache将始终获取新数据。它对我们有效,因为读写百分比分割为80/20%,所以大多数时候memcache都会返回数据,而不会命中数据库 现在,我们计划将此缓存策略移动到服务器级别,NGINX和memcache模块将使用请求uri和版本号缓存GET请求 只是需要一些关于我如何实现这一目标的反馈 我可以

我们目前使用NGINX作为服务器,使用memcache缓存数据库查询以及php中的页面

我们有一个版本编号系统,在任何更新或插入过程中,这个版本号都会增加,因此当每个键都附加了这个版本号时,memcache将始终获取新数据。它对我们有效,因为读写百分比分割为80/20%,所以大多数时候memcache都会返回数据,而不会命中数据库

现在,我们计划将此缓存策略移动到服务器级别,NGINX和memcache模块将使用请求uri和版本号缓存GET请求

只是需要一些关于我如何实现这一目标的反馈

  • 我可以获取存储在NGINX的memcache中的这个版本号吗?(这将用于将其附加到请求uri)
  • 如何处理已登录的用户?(我是否可以为登录用户设置cookie,并检查nginx中是否存在此cookie,如果它只是将请求传递到后端而不是memcache)
    • 1)不幸的是,使用“vanila”nginx无法做到这一点。但是有几个第三方nginx模块可以帮助您实现这一点。请看一看

      增强memcached协议支持 http://wiki.nginx.org/NginxHttpMemcModule

      价值评估

      我建议您给我一个机会访问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  
          }
      

      感谢您的资源,请看一看,它们应该是有用的。