这几天了解到下面一篇文章:
使用 memc-nginx 和 srcache-nginx 模块构建高效透明的缓存机制
里面讲到:
传统上, PHP 中使用 memcache 的方法是使用 php-memcache 或 php-memached 扩展操作 memcache ,然而在 Nginx 上有构建更高效缓存机制的方法。
就是是 Nginx 直接访问 memcache ,并用 uri 和 args 等 Nginx 内置变量设定缓存 key 规则,这样,当缓存命中时, Nginx 可以跳过通过 fastcgi 和 PHP 通信的过程,直接从 memcache 中获取数据并返回。 memc-nginx 和 srcache-nginx 正是利用这种策略提高了缓存的效率。
当缓存命中时, Nginx 可以跳过通过 fastcgi 和 PHP 通信的过程,直接从 memcache 中获取数据并返回。
WordPress 正好个插件 WP-FFPC,支持 使用 Nginx 内置的 ngx_http_memcached_module 模块连接读取 Memcached 服务器中的缓存内容,如果没有缓存, WP-FFPC 再生成页面缓存存到 Memcached 中,下次访问就可以让 Nginx 直接从 Memcached 中读取。
我搜索了下 V2EX ,发现这个方面讨论的不是很多。
在这个帖子 Nginx & Memcached 中:
@Fenng 说:实验性仍然比较强.
@Livid 说:“最近打算在一个流量挺大的地方试试这个模块。”
在这个帖子 nginx 反向代理后 proxy_cache 和 memcache 有什么用 中:
@notedit 说: nginx 连接 memcache 是短连接 请求多了之后会把 memcache 连暴
而且是走网络的 速度并不是那么的快
不过我发现这两个帖子都是 2010 、 2012 年发布的,不知道发展到现在, Nginx 的 Memcached 模块作为网站缓存解决方案如何了,缓存性能和效率方面靠不靠谱呢。。
WP-FFPC 插件下载:
https://wordpress.org/plugins/wp-ffpc/
1
willis 2015-11-01 23:03:48 +08:00 via iPhone 1
没用过这个, nginx 静态文件可以使用 proxy_cache ,动态 php 可以使用 fastcgi_cache ,缓存内容是存在共享内存中的,这两个模块 nginx 原生支持,简单稳定。对于大多数缓存场景,不会用 nginx 直接调用 memcache 服务的,正如楼主所说增加系统复杂性,效果和稳定性又很难得到保障。个人感觉应用场景可能是: 动态缓存内容比较大的时候,如超过了服务器内存,这时前端 nginx 服务器调用 memcache 集群缓存才有意义,如果是 wp 基本上到不了这个规模,实际上可能也只有淘宝这样少数的真正的高并发网站才有这样的需求,我是乱说的,不对请当笑话看
|