Nginx的memcache缓存和失效

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

我们有一个版本编号系统,在任何更新或插入过程中都会发生此版本号的变化,因此每次使用此版本号时,memcache将始终提取新数据。 它适用于我们,因为读写%split是80/20%,所以大部分时间memcache将会在不碰到数据库的情况下返回数据。

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

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

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

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

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

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

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

    2)互联网上有很多例子说明如何禁用日志记录用户的缓存

        if ($http_cookie ~* "auth_user") {
            # do some thing, set flag or so  
        }
    
    链接地址: http://www.djcxy.com/p/61675.html

    上一篇: Nginx memcache caching and invalidation

    下一篇: Caching of current user specific pages