WordPress功能很强大,但是性能确实比较慢, WordPress采用的是动态数据库查询技术。通俗的说,就是用户访问每篇文章或页面,都会向数据库发送一条查询命令,数据库根据命令查询之后,返回查询结果(这个结果不考虑任何缓存技术)。显然,如果访问量大的时候,会出现频繁的查询。所以这会减慢网站速度。如果服务器性能不高,瞬间网站就崩溃了。
所以需要一种技术,来减少数据库查询次数。而数据库缓存技术就是其中之一。Redis技术是其中的佼佼者。Redis是key-value分布式存储系统。简单的说,就是根据关键词值进行查询,这在很大程度上弥补了Memcached的短板。通过Redis进行数据库缓存,查询速度会更快,并发数更多。

Redis是一个使用ANSI C编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。Redis也常用于Mysql数据库缓存。

Redis for WordPress
本次教程使用宝塔面板,后台的软件管理里面就可以直接安装Redis。

安装过程也是很快的,稍等会安装好了,Redis是一个高级的key-value存储系统,类似memcached,所有内容都存在内存中,因此每秒钟可以超过10万次GET操作。如果流量很大的站我们可以用在redis缓存来解决流量太大给服务器带来的压力。
面板 – 软件商店 – PHP – 设置 – 安装扩展 – redis
WP后台 – 插件 – 安装插件 – 搜“Redis Object Cache”安装并启用
WordPress Redis缓存插件主要有:WP Redis、Redis Object Cache,W3 Total Cache和WP Super Cache是一个缓存插件,功能多,但同时也支持Redis缓存。
wp-config.phpdefine( ‘WP_CACHE_KEY_SALT’, ‘Redis123’ );
Redis123为可以为任意字符,推荐以你的数据库名称以区分不同的网站,并且如果一个服务器有多个WordPress网站使用Redis的话,需要每个网站设置的Redis123都不同。
WP后台 – 设置 – Redis – Enable Object Cache
启用该插件后记得在后台点击启动,Status显示为 Connected 代表插件启用成功。

补充一:禁用某个Redis缓存
使用了Redis缓存后,有些主题或者是插件可能出现不兼容的问题,例如挖站否论坛使用的插件Anspress就不兼容Redis,所以我们需要在wp-config.php中排除插件或者主题用到的Groups,代码如下:
define('WP_REDIS_IGNORED_GROUPS',array('comment','counts','plugins','themes','anspress','ap','ap_prefetch_activities','ap_q_id_activity','ap_users_reputation','ap_qameta','ap_prefetch_activities','ap_subscriber','ap_votes_queries','ap_vote'));
我们在Redis Object Cache插件中可以看到忽略的参数,表示已经生效了。

补充二:远程使用Redis缓存
如果你想要让你的Wordpress调用远程的Redis缓存(像阿里云、腾讯云就提供此类的服务),编辑wp-config.php指定Redis缓存的地址、端口、密码以及数据库等,如果配合上面的WP_CACHE_KEY_SALT设置,你又可以实现远程+多站点Redis缓存了。代码如下:
define('WP_REDIS_HOST', 'xxx.xxx.com'); #默认是127.0.0.1
define('WP_REDIS_PORT', '6379'); #默认是6379
define('WP_REDIS_DATABASE', '0'); # redis 数据库(第一个0 ,然后是1,依次类推)
define('WP_REDIS_PASSWORD', qimm); # redis 数据库密码,默认是无
Redis完整配置命令如下,请根据自己的需要使用:
#Redis完整配置如下:
define('WP_REDIS_CLIENT', 'pecl'); // 指定用于与Redis通信的客户端, pecl 即 The PHP Extension Community Library
define('WP_REDIS_SCHEME', 'tcp'); // 指定用于与Redis实例进行通信的协议
define('WP_REDIS_HOST', '127.0.0.1'); // Redis服务器的IP或主机名
define('WP_REDIS_PORT', '6379'); // Redis端口
define('WP_REDIS_DATABASE', '0'); // 接受用于使用该SELECT命令自动选择逻辑数据库的数值
define('P_REDIS_PASSWORD', ''); // Redis密码
define('WP_CACHE_KEY_SALT', 'wp_'); // 设置所有缓存键的前缀(Wordpress多站点模式下使用)
define('WP_REDIS_MAXTTL', '86400');
总结
Redis缓存对于减少Wordpress的数据库查询次数非常有用,尤其是比较适合一些动态的网站,例如Wordpress设置页面缓存,但是对于登录用户就无法使用页面缓存,这时我们就可以使用Redis动态缓存了。
#进入redis
redis-cli
#清空
flushall
#退出
exit
同时也可以在WP后台Redis插件设置单击“
Flush Cache”快捷刷新缓存。






请登录后查看评论内容