用Redis缓存来给WordPress站点加速-适用于Apache和Nginx

免费教程   2014年05月27日 17:30  

用Redis缓存来给WordPress站点加速-适用于Apache和Nginx

Redis是一个开源、支持网络、基于内存的key-value存储系统,类似memcached,性能极高,支持超过100K+ 每秒的读写频率,一些大型的网站例如ITeye(JavaEye)和CSDN现在都用到了Redis。

与memcached相比,Redis提供了持久化存储,重启了服务器后memcached需要重新创建缓存,而Redis依赖快照进行持久化,即使服务器刚开机启动也不会导致负载陡增。Redis缓存比较适合大流量的Wordpress。

当你的WordPress中的文章达到上万篇,随着流量的增加,Wordpress的服务器压力也随之不断加大,Wordpress发布文章和后台相关的操作都会变得缓慢,这时如果单从硬件上投入来提高Wordpress性能显然不划算。

利用Redis将WordPress页面直接缓存在服务器的内存中,这样在避免了PHP重复执行操作的同时,内存的极速响应能够最大限度地提升Wordpress页面的访问速度,部落实际测试发现页面执行时间可以降低到0.00X秒级别,比没有使用Redis缓存提升几倍甚至十几倍以上。

WordPress简单又功能强大让大家爱不释手,但也导致了WordPress在架构大型网站和博客时成为了消耗资源“大户”,如何让Wordpress更好更有效率地运行,是我们一直不断追求的目标,参考:

memcached缓存需要先在自己的VPS上或者服务器上安装好memcached,参考方法:WDCP,LNMP安装PHP缓存加速扩展eAccelerator,xcache和memcached

用Redis缓存来给WordPress站点加速-适用于Apache和Nginx

一、 在VPS或者服务器上安装Redis

1、有些LNMP一键安装包直接提供了Redis安装,例如:https://blog.linuxeye.com/31.html,这是一个LNMP、LAMP、LANMP一键安装脚本,根据自己需求安装memcached、redis。

2、而对于一般的VPS,我们可以直接用以下命令安装(注意:redis-2.8.9是当前稳定版本,大家可以及时关注官网获得最新的:https://redis.io/download):


wget https://download.redis.io/releases/redis-2.8.9.tar.gz
tar xzf redis-2.8.9.tar.gz
cd redis-2.8.9
make

Redis执行安装命令

3、Redis会在src目录下生成几个可执行文件如:redis-benchmark,redis-check-aof,redis-check-dump,redis-cli,redis-sentinel,redis-server。执行:src/redis-server或者service redis-server start就是启动Redis。

4、配置开机启动Redis,执行以下命令:vi /etc/rc.d/rc.local,加入redis-server路径,例如:/src/redis-server

5、在VPS上和服务器上安装并运行Redis了后,可以在phpinfo看到。

Redis安装成功

二、用Predis.php作为Redis的PHP客户端

1、我们可以使用Predis.php来作为PHP客户端,直接将Predis.php下载并上传到Wordpress的根目录下,CD到Wordpress根目录,执行以下命令:


wget https://uploads.staticjw.com/ji/jim/predis.php
chown www.www ./predis.php

2、这是Predis.php的备份下载:Predis.php下载。你可以手动下载并上传。

Predis.php下载安装

三、安装Redis前端缓存的PHP脚本

1、Redis前端缓存的PHP脚本来自:https://www.jimwestergren.com/wordpress-with-redis-as-a-frontend-cache/

<?php

/*
    Author: Jim Westergren & Jeedo Aquino
    File: index-with-redis.php
    Updated: 2012-10-25

    This is a redis caching system for wordpress.
    see more here: www.jimwestergren.com/wordpress-with-redis-as-a-frontend-cache/

    Originally written by Jim Westergren but improved by Jeedo Aquino.

    some caching mechanics are different from jim's script which is summarized below:

    - cached pages do not expire not unless explicitly deleted or reset
    - appending a ?c=y to a url deletes the entire cache of the domain, only works when you are logged in
    - appending a ?r=y to a url deletes the cache of that url
    - submitting a comment deletes the cache of that page
    - refreshing (f5) a page deletes the cache of that page
    - includes a debug mode, stats are displayed at the bottom most part after </html>

    for setup and configuration see more here:

    www.jeedo.net/lightning-fast-wordpress-with-nginx-redis/

    use this script at your own risk. i currently use this albeit a slightly modified version
    to display a redis badge whenever a cache is displayed.

*/

// change vars here
$cf = 1;			// set to 1 if you are using cloudflare
$debug = 0;			// set to 1 if you wish to see execution time and cache actions
$display_powered_by_redis = 1;  // set to 1 if you want to display a powered by redis message with execution time, see below

$start = microtime();   // start timing page exec

// if cloudflare is enabled
if ($cf) {
    if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
        $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
    }
}

// from wp
define('WP_USE_THEMES', true);

// init predis
include("predis.php");
$redis = new Predis\Client('');

// init vars
$domain = $_SERVER['HTTP_HOST'];
$url = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$url = str_replace('?r=y', '', $url);
$url = str_replace('?c=y', '', $url);
$dkey = md5($domain);
$ukey = md5($url);

// check if page isn't a comment submission
(isset($_SERVER['HTTP_CACHE_CONTROL']) && $_SERVER['HTTP_CACHE_CONTROL'] == 'max-age=0') ? $submit = 1 : $submit = 0;

// check if logged in to wp
$cookie = var_export($_COOKIE, true);
$loggedin = preg_match("/wordpress_logged_in/", $cookie);

// check if a cache of the page exists
if ($redis->hexists($dkey, $ukey) && !$loggedin && !$submit && !strpos($url, '/feed/')) {

    echo $redis->hget($dkey, $ukey);
    $cached = 1;
    $msg = 'this is a cache';

// if a comment was submitted or clear page cache request was made delete cache of page
} else if ($submit || substr($_SERVER['REQUEST_URI'], -4) == '?r=y') {

    require('./wp-blog-header.php');
    $redis->hdel($dkey, $ukey);
    $msg = 'cache of page deleted';

// delete entire cache, works only if logged in
} else if ($loggedin && substr($_SERVER['REQUEST_URI'], -4) == '?c=y') {

    require('./wp-blog-header.php');
    if ($redis->exists($dkey)) {
        $redis->del($dkey);
        $msg = 'domain cache flushed';
    } else {
        $msg = 'no cache to flush';
    }

// if logged in don't cache anything
} else if ($loggedin) {

    require('./wp-blog-header.php');
    $msg = 'not cached';

// cache the page
} else {

    // turn on output buffering
    ob_start();

    require('./wp-blog-header.php');

    // get contents of output buffer
    $html = ob_get_contents();

    // clean output buffer
    ob_end_clean();
    echo $html;

    // Store to cache only if the page exist and is not a search result.
    if (!is_404() && !is_search()) {
        // store html contents to redis cache
        $redis->hset($dkey, $ukey, $html);
        $msg = 'cache is set';
    }
}

$end = microtime(); // get end execution time

// show messages if debug is enabled
if ($debug) {
    echo $msg.': ';
    echo t_exec($start, $end);
}

if ($cached && $display_powered_by_redis) {
	// You should move this CSS to your CSS file and change the: float:right;margin:20px 0;
	echo "<style>#redis_powered{float:right;margin:20px 0;background:url(https://images.staticjw.com/jim/3959/redis.png) 10px no-repeat #fff;border:1px solid #D7D8DF;padding:10px;width:190px;}
	#redis_powered div{width:190px;text-align:right;font:10px/11px arial,sans-serif;color:#000;}</style>";
	echo "<a href=\"https://www.jimwestergren.com/wordpress-with-redis-as-a-frontend-cache/\" style=\"text-decoration:none;\"><div id=\"redis_powered\"><div>Page generated in<br/> ".t_exec($start, $end)." sec</div></div></a>";
}

// time diff
function t_exec($start, $end) {
    $t = (getmicrotime($end) - getmicrotime($start));
    return round($t,5);
}

// get time
function getmicrotime($t) {
    list($usec, $sec) = explode(" ",$t);
    return ((float)$usec + (float)$sec);
}

?>

2、 你也可以直接点击备用下载:index-with-redis.php下载地址。 Github项目:https://gist.github.com/JimWestergren/3053250#file-index-with-redis-php

3、 如果你正在使用cloudflare,请设置cf = 1; ,如果你想在页面上看到脚本执行时间和缓存加载时间,请设置$debug = 1; display_powered_by_redis = 1表示显示powered_by信息。

Redis设置相关模式

4、将index-with-redis.php上传到Wordpress的根目录,如果你使用的是nginx,重命令原来的index.php为任意其它名字,把index-with-redis.php重命名为index.php。

Redis缓存重命令文件

5、如果你使用的是Apache,则需要把.htaccess中出现的index.php替换成index-with-redis.php。

Redis缓存修改.htaccess

6、所有的操作完成后,你就可以刷新一下Wordpress页面,查看Redis缓存效果了。

7、实际使用过程中发现以上代码会出现Wordpress首页和分类没有及时缓存,这里再给出优化版本,出自https://www.jeedo.net/lightning-fast-wordpress-with-nginx-redis/。

8、功能差不多,主要有:登录时页面不缓存、除非删除或者重置否则不删除缓存页面、登录时在任意URL后加上?c=y可以删除整个网站缓存、在任意URL后面加上?c=y可以清除此URL缓存、allow_fopen被禁止也可以正常运行、发表评论时删除该页面缓存。

9、index-with-redis.php优化版本的源码是:


<?php

/*
    author: jeedo aquino
    file: wp-index-redis.php
    credit: jim westergren
    updated: 2012-10-23

    this is a redis caching system for wordpress inspired by jim westergren.
    see more here: www.jimwestergren.com/wordpress-with-redis-as-a-frontend-cache/
    some caching mechanics are different from jim's script which is summarized below:

    - cached pages do not expire not unless explicitly deleted or reset
    - appending a ?c=y to a url deletes the entire cache of the domain, only works when you are logged in
    - appending a ?r=y to a url deletes the cache of that url
    - script still works even if allow_fopen is disabled
    - submitting a comment deletes the cache of that page
    - refreshing (f5) a page deletes the cache of that page
    - includes a debug mode, stats are displayed at the bottom most part after 

    for setup and configuration see more here:

    www.jeedo.net/lightning-fast-wordpress-with-nginx-redis/

    use this script at your own risk. i currently use this albeit a slightly modified version
    to display a redis badge whenever a cache is displayed.

*/

// change vars here
$cf = 0;                // set to 1 if you are using cloudflare
$debug = 0;             // set to 1 if you wish to see execution time and cache actions

$start = microtime();   // start timing page exec

// if cloudflare is enabled
if ($cf) {
    if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) {
        $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];
    }
}

// from wp
define('WP_USE_THEMES', true);

// init predis
include("predis.php");
$redis = new Predis\Client('');

// init vars
$domain = $_SERVER['HTTP_HOST'];
$url = "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$url = str_replace('?r=y', '', $url);
$url = str_replace('?c=y', '', $url);
$dkey = md5($domain);
$ukey = md5($url);

// check if page isn't a comment submission
(($_SERVER['HTTP_CACHE_CONTROL'] == 'max-age=0') ? $submit = 1 : $submit = 0);

// check if logged in to wp
$cookie = var_export($_COOKIE, true);
$loggedin = preg_match("/wordpress_logged_in/", $cookie);

// check if a cache of the page exists
if ($redis->hexists($dkey, $ukey) && !$loggedin && !$submit) {

    echo $redis->hget($dkey, $ukey);
    if (!$debug) exit(0);
    $msg = 'this is a cache';

// if a comment was submitted or clear page cache request was made delete cache of page
} else if ($submit || substr($_SERVER['REQUEST_URI'], -4) == '?r=y') {

    require('./wp-blog-header.php');
    $redis->hdel($dkey, $ukey);
    $msg = 'cache of page deleted';

// delete entire cache, works only if logged in
} else if ($loggedin && substr($_SERVER['REQUEST_URI'], -4) == '?c=y') {

    require('./wp-blog-header.php');
    if ($redis->exists($dkey)) {
        $redis->del($dkey);
        $msg = 'domain cache flushed';
    } else {
        $msg = 'no cache to flush';
    }

// if logged in don't cache anything
} else if ($loggedin) {

    require('./wp-blog-header.php');
    $msg = 'not cached';

// cache the page
} else {

    // turn on output buffering
    ob_start();

    require('./wp-blog-header.php');

    // get contents of output buffer
    $html = ob_get_contents();

    // clean output buffer
    ob_end_clean();
    echo $html;

    // store html contents to redis cache
    $redis->hset($dkey, $ukey, $html);
    $msg = 'cache is set';
}

$end = microtime(); // get end execution time

// show messages if debug is enabled
if ($debug) {
    echo $msg.': ';
    echo t_exec($start, $end);
}

// time diff
function t_exec($start, $end) {
    $t = (getmicrotime($end) - getmicrotime($start));
    return round($t,5);
}

// get time
function getmicrotime($t) {
    list($usec, $sec) = explode(" ",$t);
    return ((float)$usec + (float)$sec);
}

?>

四、Wordpress删除Redis页面缓存的方法

1、删除某一个页面的缓存:发表评论、按下F5刷新、在URL后面加上?r=y回车。

2、删除整站页面缓存:登录到Wordpress后台,在任意URL后面加上?r=y回车。

3、更新文章时自动刷新首页缓存:在你的Wordpress的Function.php中加入以下代码(出自:https://blog.zts1993.com/4738.html):

function newPostRefresh() {
$temp=file_get_contents(“https://xxxxxxx/?r=y”); //xxxxxx自己替换
}
add_action(‘publish_post’, ‘newPostRefresh’);
add_action(‘edit_post’, ‘newPostRefresh’);
add_action(‘delete_post’, ‘newPostRefresh’);
add_action(‘comment_post’, ‘newPostRefresh’);
add_action(‘edit_comment’, ‘newPostRefresh’);
add_action(‘delete_comment’, ‘newPostRefresh’);
add_action(‘wp_set_comment_status’, ‘newPostRefresh’);
add_action(‘switch_theme’, ‘newPostRefresh’);

4、自动更新Wordpress缓存:在crontab中配置每10分钟用curl访问首页更新缓存,每天凌晨对首页或者分类页面进行更新。


*/10 * * * * curl https://www.freehao123.com/?r=y 
1 1 * * * curl https://www.freehao123.com/fenye/?r=y

五、Wordpress Redis缓存加速效果

1、当Wordpress页面生成时,会弄成Redis缓存。

Redis缓存生成

2、第二次访问该页面时,由于Redis缓存,页面执行时间降低到0.00X左右,效果明显。

Redis缓存加速效果

3、发表评论等可以删除评论。

Redis缓存删除

4、如果使用index-with-redis.php的Debug开启模式,会在页面最下方看到执行时间。

Redis缓存页面执行时间

六、Wordpress Redis缓存使用小结

1、注意,Wordpress Redis缓存PHP版本在5.3以上,LNMP一键安装包在安装时需要选择PHP 5.3以上版本,而WDCP默认安装PHP是5.2.17,还需要自己手动升级PHP版本。

2、Wordpress Redis缓存加速效果无疑是明显的,特别页面多访问大的网站博客,在使用Wordpress Redis缓存加速时请禁止其它的所有缓存插件,以免造成不必要的冲突。

3、经过部落测试Wordpress Redis缓存在使用过程中主要存在的问题就是文章更新时,相应的Tag和分类、首页等内容不会实时更新,我们需要手动更新或者利用自动更新命令。

文章出自:免费资源部落 https://www.freehao123.com/ 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。

十个便宜VPS主机分享-VPS服务器建站和搭建应用服务体验
2014年六大免费VPS主机-免费VPS申请、使用和点评

您或许对下面这些文章有兴趣:                    本月吐槽辛苦排行榜

在这个部落村庄里,已经有114 位神马家族成员冒出泡来在农场开始干活了
  • 从没坐过

    外星人源码论坛 回复:

    @AgoHost, 挤一挤 露个脸!

    这是农场的第 1 块农田,部落批准 [AgoHost] 在[2014-5-27 17:53]开垦完成.
  • 二楼

    这是农场的第 2 块农田,部落批准 [longskay] 在[2014-5-27 17:59]开垦完成.
  • :arrow: 图挂了?看不到哦

    qi 回复:

    @一实不二, 已经恢复,你再看看。

    wordpressnote 回复:

    @qi, 第一个文件不能下载了,从别处下载了一个,按照你的操作,提示无法打开”https://www.wordpressnote.com/index-with-redis.php”
    无法连接服务器。

    qi 回复:

    @wordpressnote, 查出了什么原因没?

    这是农场的第 3 块农田,部落批准 [一实不二] 在[2014-5-27 18:15]开垦完成.
  • 哎呀,来晚了。

    这是农场的第 4 块农田,部落批准 [elven] 在[2014-5-27 18:20]开垦完成.
  • befory 5

    前排~~~

    这是农场的第 5 块农田,部落批准 [befory] 在[2014-5-27 18:26]开垦完成.
  • 全站静态+多说就能扛很多人了,用不着各种高端缓存技术

    无纯洁 回复:

    @逗妇乳, 我很赞同~

    超超 回复:

    @逗妇乳, 用的什么插件或者工具?全站静态化

    qi 回复:

    @逗妇乳, 静态博客就可以承受大流量。我感觉用静态博客生成垃圾网站就不错。

    外星人源码论坛 回复:

    @qi, 要是做垃圾站的话!使用dedecms 岂不是更爽!

    这是农场的第 6 块农田,部落批准 [逗妇乳] 在[2014-5-27 18:34]开垦完成.
  • Kung 23

    缓存有时候还是很实用的- –

    这是农场的第 7 块农田,部落批准 [Kung] 在[2014-5-27 18:40]开垦完成.
  • 小6 1

    好东西收藏下

    这是农场的第 8 块农田,部落批准 [小6] 在[2014-5-27 18:50]开垦完成.
  • 谁用了,看看效果!

    这是农场的第 9 块农田,部落批准 [悦听有声] 在[2014-5-27 19:37]开垦完成.
  • 每次从订阅来到这,貌似都晚了。。。。虽然用不到但是还是收藏吧等到我的文章到达万级别之后再用。

    这是农场的第 10 块农田,部落批准 [johnhuo] 在[2014-5-27 20:01]开垦完成.
  • 虚拟主机路过……WP Super Cache也不错~

    qi 回复:

    @E享乐, 等博主的流量上来了,估计要考虑使用VPS了。

    这是农场的第 11 块农田,部落批准 [E享乐] 在[2014-5-27 20:10]开垦完成.
  • 刚玩了玩HHvm,也不错

    大喇叭 回复:

    @Wordpressnote, 我是不是在你博客的垃圾箱里面了

    Wordpressnote 回复:

    @大喇叭, 应该没有吧,发不了评论吗

    大喇叭 回复:

    @Wordpressnote, 我在你博客发了,在审核中么,想到你那要个software

    wordpressnote 回复:

    @大喇叭, 待审的评论都没有呢,只有E享乐发的

    wordpressnote 回复:

    @大喇叭, 还真给拦截了啊,不知道怎么回事,现在在外面,回去了发你

    这是农场的第 12 块农田,部落批准 [Wordpressnote] 在[2014-5-27 20:37]开垦完成.
  • babytomas

    除了这个以外,Varnish 其实也不错

    qi 回复:

    @babytomas, Varnish也是一个不错的缓存服务器,之前试用过它。

    babytomas 回复:

    @qi, :lol: 内存大的话用起来效果更好

    这是农场的第 13 块农田,部落批准 [babytomas] 在[2014-5-27 21:10]开垦完成.
  • 目前的规模还用不上

    余人 回复:

    @正版软件分享, 你的规模不小了呀

    这是农场的第 14 块农田,部落批准 [正版软件分享] 在[2014-5-27 21:18]开垦完成.
  • 发现了 都是技术帝,需要的vps的 联系我 xen的,,,,一个月时间512m 原价50 部落价25 …练手专用…

    这是农场的第 15 块农田,部落批准 [大喇叭] 在[2014-5-27 21:21]开垦完成.
  • 暂时用不上 以后再折腾吧!!

    这是农场的第 16 块农田,部落批准 [趣赚吧] 在[2014-5-27 21:39]开垦完成.
  • 很不错的经验。

    这是农场的第 17 块农田,部落批准 [网赚客] 在[2014-5-27 22:01]开垦完成.
  • 若水 16

    不错

    qi 回复:

    @若水, 国外空间不能使用?

    若水 回复:

    @qi, 说的阿里dns?对的,国外ip是不能绑定的。

    johnhuo 回复:

    @qi, qi大大为什么不搞个“回到顶部”按钮,文章很长回到上面不太方便哈

    这是农场的第 18 块农田,部落批准 [若水] 在[2014-5-27 22:13]开垦完成.
  • Sang 1

    其实我这种用Typecho)))的就用不上了。

    lance 回复:

    @Sang, Typecho的小伙伴们也可以用了:[url]https://github.com/lanceliao/Typecho-Redis-Cache[/url]

    这是农场的第 19 块农田,部落批准 [Sang] 在[2014-5-28 06:14]开垦完成.
  • :arrow: 好高端啊!我什么缓存插件都没用!

    qi 回复:

    @潮流台, 主要是一些文章特别多的Wordpress,比如采集或者多人团队那种WP是非常有用的。

    这是农场的第 20 块农田,部落批准 [潮流台] 在[2014-5-28 09:39]开垦完成.
  • Jason 16

    不会用vps

    这是农场的第 21 块农田,部落批准 [Jason] 在[2014-5-28 10:16]开垦完成.
  • QI,今天服务商又发邮件说网站的ss@h端口被暴力破解,有个ip尝试次数达到了1万多次,导致VPS的CPU使用率飙升,有没有什么好的解决办法?

    kslr 回复:

    @伊犁的秋天, 修改ss@h端口

    qi 回复:

    @伊犁的秋天, 有试过这些方法吗?效果还可以。https://www.freehao123.com/vps-*/

    不认识 回复:

    @伊犁的秋天, 改SS@H端口可避免穷举,当然,知道你端口的穷举就防不住了。

    这是农场的第 22 块农田,部落批准 [伊犁的秋天] 在[2014-5-28 10:47]开垦完成.
  • kslr 1

    给WP用真是浪费

    这是农场的第 23 块农田,部落批准 [kslr] 在[2014-5-28 10:54]开垦完成.
  • Less 3

    与super cache比如何?

    这是农场的第 24 块农田,部落批准 [Less] 在[2014-5-28 12:23]开垦完成.
  • 前几天刚学了Redis数据库,然后这么看文章感觉很熟悉啊

    这是农场的第 25 块农田,部落批准 [阿水博客] 在[2014-5-28 12:38]开垦完成.
  • haha 2

    我觉得淘宝相册做图床也是非常不错的!有20G的空间!非常不错!而且速度非常的快

    这是农场的第 26 块农田,部落批准 [haha] 在[2014-5-28 14:02]开垦完成.
  • 如果一个VPS安装多个wordpress,有冲突没?

    zhangnew 回复:

    @wordpressnote, 没有冲突

    这是农场的第 27 块农田,部落批准 [wordpressnote] 在[2014-5-28 15:22]开垦完成.
  • Mika 12

    这个高端,可惜我不是wp

    这是农场的第 28 块农田,部落批准 [Mika] 在[2014-5-28 18:24]开垦完成.
  • 想知道有评论时自动刷新缓存是怎么实现的?

    这是农场的第 29 块农田,部落批准 [不认识] 在[2014-5-28 22:34]开垦完成.
  • 够高大上了

    这是农场的第 30 块农田,部落批准 [爱敷衍] 在[2014-5-28 22:34]开垦完成.
  • 大毛 1

    我的WORDPRESS在SAE上,请问在SAE上可以缓存吗?

    这是农场的第 31 块农田,部落批准 [大毛] 在[2014-6-2 12:27]开垦完成.
  • 枫影

    memcache Redis 两者一般用哪个比较好?

    qi 回复:

    @枫影, 看需求,memcache更适合于数据库缓存,Redis适合于PHP动态页面前台缓存。

    寒忆 回复:

    @qi, memcache缓存数据库,配合您教程的Batcache缓存页面,是不是比redis要好(不考虑持久化之类的)。另外 如果 用memcache+redis会冲突吗 ?memcache是只会自动缓存数据查询是吧 ,用redis缓存页面。 redis是否比batcache效果好对于页面来说

    这是农场的第 32 块农田,部落批准 [枫影] 在[2014-6-2 20:22]开垦完成.
  • 小1 1

    按照教程配置redis,刷新两下白屏了,我擦= =,qi这是怎么回事啊,尼玛坑爹啊。。

    qi 回复:

    @小1, 现在你的博客是502错误了。先把它恢复看看,再一步一步检查是哪里出了问题。

    这是农场的第 33 块农田,部落批准 [小1] 在[2014-7-9 01:54]开垦完成.
  • 小1 1

    现在部落是用redis吗?

    qi 回复:

    @小1, 暂时还没有,用的还是缓存。

    这是农场的第 34 块农田,部落批准 [小1] 在[2014-7-18 06:30]开垦完成.
  • 小1 1

    今天访问感觉速度挺不错的

    这是农场的第 35 块农田,部落批准 [小1] 在[2014-7-18 06:31]开垦完成.
  • phpinfo 没有看到信息 就卡在这里了 什么情况

    qi 回复:

    @Busysir, 卡在哪里了?

    这是农场的第 36 块农田,部落批准 [Busysir] 在[2014-8-1 21:40]开垦完成.
  • Qa 4

    正想试试,网站负载太大了。开的8PHP-fpm负载达到5.

    这个东西子主要的是发布评论后不会刷新缓存导致看不到评论吧

    Qa 回复:

    这玩意内存占用很大么????
    1G内存的VPS。瞬间内存崩了

    Qa 回复:

    白屏、、、

    大步 回复:

    @Qa, 估计是你的redis挂了,见[url]https://www.dabu.info/?p=5666[/url] 。一台vps搞这个,还是不够

    qi 回复:

    @Qa, 因为用内存来缓存的,所以会十分消耗内存。

    qi 回复:

    @Qa, 现在没有这个问题了,发表评论会后自动更新缓存。

    Qa 回复:

    @qi, 救命。使用后白屏了。PHP报错

    qi 回复:

    @Qa, 现在是不是好了?

    Qa 回复:

    @qi, 直接重装服务器了。。。

    这是农场的第 37 块农田,部落批准 [Qa] 在[2014-8-4 18:17]开垦完成.
  • 用了 any mobile theme switcher 怎么让redis在手机端上不生效啊?

    qi 回复:

    @Vansfans, redis好像不好判断。

    Vans爱好者 回复:

    @qi, 我的天,那实在不好办呢,还有,我加入了你那个更新文章自动刷新首页的代码到function.php,结果出错了。直接让redis空白页。

    这是农场的第 38 块农田,部落批准 [Vansfans] 在[2014-10-21 07:44]开垦完成.
  • 按照教程配置了,不过错误日志显示:
    Notice: Undefined index: HTTP_CACHE_CONTROL in /data/wwwroot/default/index-with-redis.php on line 59
    请问是什么情况?

    qi 回复:

    @nanchen, 有可能是代码出现了语法错误,你看看标点符号是不是英文的,或者横线是不是英文的,有时直接复制过去的代码会出现中文符号。

    gao 回复:

    @nanchen, 我也报這个错误,你解决了吗

    这是农场的第 39 块农田,部落批准 [nanchen] 在[2015-1-22 11:33]开垦完成.
  • 好像没有效果,cache of page deleted 依然是 1.× ,不知道哪里没配置对。

    qi 回复:

    @E享乐, 是不是没有启用Redis?

    E享乐 回复:

    @qi, 用的是lnmp安装包,在phpinfo中可以看到Redis信息,就是没效果,好像没有缓存成功,浏览计数都还是正常计数。

    qi 回复:

    @E享乐, 那应该是没有成功启用Redis缓存,检查一下是不是配置出了问题。

    这是农场的第 40 块农田,部落批准 [E享乐] 在[2015-1-23 23:21]开垦完成.
  • 小雄 5

    安装各种报错,始终PHPINFO没有看到redis的信息,郁闷

    qi 回复:

    @小雄, 有些一键安装包可以直接安装,手动配置可能比较麻烦。

    这是农场的第 41 块农田,部落批准 [小雄] 在[2015-7-31 13:48]开垦完成.
  • cc 2

    问一下哈.我的环境是LNAMP 又安装了Redis插件.怎么用Redis 来加速呢?>我按你的教程来修改了index.php 前端就显示空白了,怎么办.?

    qi 回复:

    @cc, VPS上安装了Redis扩展没?如果没有,直接安装Wordpress的Redis插件是出现错误的。

    cc 回复:

    @qi, vps己安装了用探针也看的到。https://120.55.99.66/tz.php

    cc 回复:

    @cc, 你的教程上,是修改index.php,没有用插件哈,我也没用插件的。

    qi 回复:

    @cc, LNAMP架构的,可以尝试用本文Apache模式看看。有Htaccess文件吗?

    cc 回复:

    @qi, 那我还要把根目录的原来的index.php,更名.吗?

    qi 回复:

    @cc, 是的。

    cc 回复:

    @qi, 我的意思就是说.用apache 在.htaccess 修改了
    原index.php 变成 index-with-redis.php 了
    那根目录原有的.index.php. 还要换名字,把index-with-redis.php 改成index.php 吗?

    qi 回复:

    @cc, 根目录原有的.index.php.删除或者改成其它的名字。把index-with-redis.php 改成index.php ,即实现替换。

    cc 回复:

    @qi, 不知道我用了Memcached+Memcache 做了缓存了,如果在启用Redis, 不知道会不会 有冲突哈。
    刚才把环境。刚装好。
    LNMPA (Open-Resty) 感觉还没有以前的LNMPA 速度快。

    qi 回复:

    @cc, Memcached和Memcache最好只用一个,否则加速效果还不行。Redis、Memcached、Memcache虽说可以共存,但是如果用了Redis,其它的也可以不用了。

    cc 回复:

    @qi, $debug = 0; 这里修改成1了.怎么还是看不到加载时间哦.是不是Redis 没有配置成功啊.
    https://ccmsn.com

    这是农场的第 42 块农田,部落批准 [cc] 在[2015-9-10 14:06]开垦完成.
  • cc 2

    今天我在来折腾一下看看,上次没有搞成功的。

    qi 回复:

    @cc, 你网页貌似有错误Uncaught ReferenceError: $ is not defined

    cc 回复:

    @qi, 今天把折腾好了,但是不明白为什么重启了VPS 之后。目录里面的.htaccess 里面的重定向还是恢复成、index.php 只有在进.htaccess 去修改成index-with-redis.php 在重载httpd .

    qi 回复:

    @cc, 是不是Wordpress什么插件自动修改了?把htaccess改成不可写看看。

    这是农场的第 43 块农田,部落批准 [cc] 在[2016-4-18 23:10]开垦完成.
  • CC 2

    这个刷新分类,页面,怎么实现不了呢?只能进后台 刷新全站缓存了吗?
    我的分页,分类,标签, 是这样的结构
    https://ccmsn.com/about.html
    https://ccmsn.com/cat
    https://ccmsn.com/tag
    我在URL输入
    https://ccmsn.com/cat/?r=y
    显示是404页面了。这不是无效的URL吗?
    那何谈刷新缓存呢。是不是这个道理?

    qi 回复:

    @CC, 应该是这样的:https://ccmsn.com/cat/wechat/?r=y。这里的URl是指具体的页面,而不是指所有的分类或者标签页面。

    这是农场的第 44 块农田,部落批准 [CC] 在[2016-5-25 06:22]开垦完成.
  • 你好,使用redis进行缓存WP,主题对移动端进行了判断,但是手机上还是显示桌面端的样式,请问知道是什么原因吗?

    qi 回复:

    @萨龙龙, 应该是判断没有成功吧,有可能是缓存导致PHP代码没有生效。你是用什么方法判断的?

    这是农场的第 45 块农田,部落批准 [萨龙龙] 在[2016-6-12 19:22]开垦完成.
  • 您好博主,请问下如果装了子目录站点,那么还能用同样的方式为子目录设置redis或者memcached缓存吗?会不会和主站起冲突?

    qi 回复:

    @美意3D打印, memcached是没有问题,redis应该有问题,因为缓存不同。

    美意3D打印 回复:

    @qi, 我尝试着在子站点安装redis,结果真的不行。。现在服务器500错误了,怎么办?重启也不行。。

    qi 回复:

    @美意3D打印, 嗯,配置子目录会导致许多莫名的问题。服卸载redis不行吗?

    这是农场的第 46 块农田,部落批准 [美意3D打印] 在[2016-7-5 22:18]开垦完成.
  • cache of page deleted: 0.02994 显示的是这个,不晓得算不算缓存上了

    qi 回复:

    @李阳博客, 用上了,这就是缓存。

    这是农场的第 47 块农田,部落批准 [李阳博客] 在[2016-7-29 10:08]开垦完成.
看贴要回贴有N种理由!看帖不回贴的后果你懂得的!


(Ctrl + Enter提交)   

部落快速搜索栏

热门点击排行榜

网站导航栏

X
返回顶部