如果Redis没有正确配置,多个 WordPress网站一起工作时,如果直接使用的话,就会出现打开 A域名看到 B 网站内容的混乱情况,下面我们一起来看看多站点怎么配置redis。
安装 Redis扩展
在宝塔面板>软件商店,找到当前使用的 php版本,老魏这个测试服务器有 php5.6/7.2/7.3/7.4等多个版本,想知道当前网站用的哪个版本,只需要去宝塔面板>【网站】,点击域名打开【站点修改】>php版本,看到的就是当前版本了。

找到php版本后定位到【软件商店】> php版本,打开后点击【安装扩展】,找到并安装 redis,程序会自动部署好 redis 服务端。

添加 Redis服务端密码(开不开自选)
从安全角度出发建议给 Redis设置密码,保护数据不被入侵。当然不设置密码也能运行 Redis,请跳到下一步操作。
在安装好的 Redis扩展 > 性能调整找到 requirepass,输入密码。密码可以是字母、数字或字母数字混合,位数大于6位,多一些更安全。

设置好密码后重启Redis,好多同学设置完了不生效就是因为这一步没有做。
在 WordPress网站根目录的 wp-config.php 文件中添加如下代码,用于验证 Redis密码:
/**添加 Redis密码 */
define(‘WP_REDIS_PASSWORD’, ‘你设置的密码’);
这段代码添加在数据库信息的下面,如下图所示:
仔细看宝塔的 Redis 密码和 wp-config.php 的密码要完全一样,否则不会生效。
wp-config.php 启用缓存设置
继续添加如下代码,代码的位置如下图,盐值(SALT)的下面空一行。
define( ‘WP_CACHE_KEY_SALT’, ‘你的域名’ );
define( ‘WP_CACHE’, true );
说明:Key_Salt 是网站的盐值,区分多个 WordPress网站的唯一识别码。
安装 Redis 插件
在 WordPress后台>插件>安装插件,搜索 Redis object cache,安装并启用。

Redis生效状态
在 WordPress后台左下角的设置>Redis,右侧看到 status:connnected,一共三行绿字提示,说明连接服务端成功,Redis生效了。
当有人访问网页后,从宝塔面板>软件商店>Redis>负载状态中能看到当前 Redis的执行结果,比如查找数据库命中率等等很多参数,命中率越大越好。

数据库优化说明
进一步优化数据库,在宝塔面板 > 软件商店 > MySql > 性能调整 > 优化方案根据服务器(vps)内存的大小选择(内存多大就选择多大)。
再把 MySQL查询缓存(query_cache_size)设置为 0,这样就把被访问过的数据库内容都缓存到内存中,下次有人访问同一个页面直接返回内存的数据(不再读数据库),网站打开速度极快。

什么时候 query_cache_size 的数字可以不设置成 0 呢?
WordPress没使用缓存,或很多非 WordPress程序无法使用 Redis、memcached这类缓存插件,如果数据库查询次数多、感觉网站打开慢时,就要开启查询缓存,开启后会读取缓存内容,比直接读取数据库更快。
Redis与多个 WordPress网站工作
Redis与多个 WordPress网站工作时需要经过一番设置,如果直接使用的话,会出现打开 A域名看到 B 网站内容的混乱情况。
有以下几种办法可以解决,具体你自己测试哪个好用用哪个。
修改网站 Redis盐值
在上面第四点中提到了 Key_Salt (网站盐值),在网站的 wp-config.php文件中添加不同域名就能区分开。
define( ‘WP_CACHE_KEY_SALT’, ‘A域名’ );
define( ‘WP_CACHE’, true );
保存后重启 Redis服务,下面的操作也是一样。
设置 redis 数据库名
在网站 wp-config.php文件中添加不同的数据库名
define(‘WP_REDIS_DATABASE’, 1);
也有人说上面这两个办法还是会让网站内容混乱,那么可以试试下面的办法。
修改 database数值
从网站目录定位到 /wp-content/plugins/redis-cache/includes,打开 bobject-cache.php文件,搜索 database。
修改后面的值,默认为 0 适用于第一个站点,第二个站点改成1,第三个站点改成2,以此类推。
