WordPress如何安装memcached缓存加速

WordPress安装memcached可以将对象缓存到内存中,减少MySQL查询,可以提升WordPress效率。

安装插件Memcached Object Cache

在https://wordpress.org/plugins/memcached/下载后,解压,将 object-cache.php 文件传到 wp-content/ 下面。

安装php-memcached、memcached

yum install -y php-memcache、memcached
service memcached start && service httpd restart
chkconfig --level 2345 memcached on

wp-config.php 文件查看是否有

define('WP_CACHE', true)

没有请加上。

并且在该文件倒数几行:

if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');

的前面加上

define('WP_CACHE_KEY_SALT', 'wpmore.cn');

这里的 wpmore.cn 是随意取的名字,如果一台服务器有多个WordPress站点,就可以在相应的wp-config.php添加 WP_CACHE_KEY_SALT,后面取值随意写,不要重复,如:

第一个站点 wp-config.php

define('WP_CACHE_KEY_SALT', 'site1');

第二个站点 wp-config.php

define('WP_CACHE_KEY_SALT', 'site2');

查看memcached统计

在 http://pecl.php.net/package/memcache 下载最新版本,然后将 memcache.php 传到网站目录中,访问就可以查看memcached的命中率、内存使用等。

memcached
memcached

memcache.php有账号密码,默认账号:memcache,密码:password,可以打开php文件自行修改。

建立定时任务监听memcached

要监听memcached然后自动重启,首先我们对memcached的启动输出日志。

vi /etc/sysconfig/memcached

将里面的内容改为:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="128"
OPTIONS="-d -m 128 -u root -vv >> /var/log/memcached.log 2>&1"

切割日志:

vi /etc/logrotate.d/memcached

加入:

/var/log/memcached.log {
    daily
    rotate 3
    dateext
    missingok
    create 0640 root root
    compress
    delaycompress
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

创建shell监听memacached:

vi /shell/memcached.sh

加入:

#!/bin/bash
cur_time="`date +%y-%m-%d,%H:%M:%S`"
pgrep -x memcached &> /dev/null

if [ $? -ne 0 ]
then
echo "At time:$cur_time Memcached is stop">> /var/log/memcached.log
/usr/bin/memcached -d -m 128 -u root -vv >> /var/log/memcached.log 2>&1

else
echo "Memcached server is running...">> /var/log/memcached.log

fi

用crontab建立定时任务:

crontab -e

末尾加入一行:

*/5 * * * * /bin/bash /shell/memcached.sh

这样就可以每个5分钟自动监听memacached了。

关于Memcached

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。

Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款软件。现在已成为mixi、hatena、Facebook、Vox、LiveJournal等众多服务中提高Web应用扩展性的重要因素。

Memcached是一种基于内存的key-value存储,用来存储小块的任意数据(字符串、对象)。这些数据可以是数据库调用、API调用或者是页面渲染的结果。

Memcached简洁而强大。它的简洁设计便于快速开发,减轻开发难度,解决了大数据量缓存的很多问题。它的API兼容大部分流行的开发语言。

本质上,它是一个简洁的key-value存储系统。

一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

我写了很多WordPress缓存加速的方法:

发表评论

您的电子邮箱地址不会被公开。