Nginx,memcached和cakephp:memcached模块总是错过缓存

我有一个简单的Nginx配置;

server{
  servername localhost;
  root /var/www/webroot;

  location / {
    set_md5  $memcached_key $uri;
    index  index.PHP index.html;
    try_files $uri $uri/ @cache;
  }

  location @cache  {
    memcached_pass localhost:11211;
    default_type text/html;
    error_page 404  @fallback;
  }

  location @fallback{
    try_files $uri $uri/ /index.PHP?url=$uri&$args;
  }

  location ~ \.PHP${
    fastcgi_param MEM_KEY $memcached_key;
    include /etc/Nginx/fastcgi.conf;
    fastcgi_index  index.PHP;
    fastcgi_intercept_errors on;
    fastcgi_pass unix:/var/run/PHP5-fpm.sock;
  }
}

我有一个CakePHP助手,它使用MEM_KEY参数将视图保存到memcached中.我已经测试了它并且它正在工作,但是,Nginx总是会进入@fallback方向.我该如何解决此问题?可能会出现问题吗?

最佳答案
感谢DukeLion的评论,我终于可以找到发生了什么,Nginx正在进入memcached服务器okey,但是cakePHP正在改变密钥.

例如,我尝试访问/home_page.html

Nginx使用/home_page.html进入内存缓存,不要找到它,因此加载cakePHP,cakePHP生成视图并将其保存在密钥_home__page_html中

解决方案是扩展memcached cakePHP引擎.

谢谢!!!

pd:您可以在http://andy-gale.com/cakephp-view-memcache.html获取memcached视图引擎的示例

相关文章

1. memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。 这种技术被...
add方法添加时,如果存在返回falseset方法添加时,如果存在就是覆盖,不存就是添加 1. set方法会在设置时,...
相信还是有很多项目使用memcache,可能有些人说有点out了,但是呢??? 项目上的东西不是你想换就能换...
在前边的tomcat session server msm的那篇博客我们用memcached做tomcat session服务器,默认官方memcac...
在线聊天室(onlinechatrooms)是一个共多人进行沟通交流的网络平台,随着越来越多的新技术的发明和成熟...
1.通过yum安装 复制代码代码如下:yum-yinstallmemcached#安装完成后执行:memcached-h#出现memcached帮助...