【问题标题】:Nginx memcache caching and invalidationNginx memcache缓存和失效
【发布时间】:2012-08-20 18:18:30
【问题描述】:

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

我们有一个版本编号系统,在任何更新或插入发生时,此版本号都会增加,因此 memcache 将始终获取新数据,因为每个键都附加了此版本号。它适用于我们,因为读写百分比拆分为 80/20 %,因此大多数时候 memcache 将返回数据而不访问数据库。

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

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

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

【问题讨论】:

    标签: caching nginx memcached php


    【解决方案1】:

    1) 不幸的是,你不能用“vanila”nginx 做到这一点。但是有几个 3rd-party 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.org/misc/slides/nginx-conf-scripting/nginx-conf-scripting.html

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

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

    【讨论】:

    • 感谢资源,看看应该有用。
    猜你喜欢
    • 2017-09-08
    • 2022-08-23
    • 1970-01-01
    • 2011-06-27
    • 1970-01-01
    • 2012-12-03
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多