布丁快跑

多个 WordPress 博客使用 Memcached 缓存冲突如何解决?

WordPress 安装 Memcached 缓存,可以有效减少数据库查询,降低服务器资源占用,网站访问速度也会得到很大提升,但是在同一 VPS 服务器安装第二个或者更多个 WordPress 博客时会出现冲突,如何解决?

「多个 WordPress 博客使用 Memcached 缓存冲突如何解决?:https://bdkp.net/18」

多个 WordPress 博客使用 Memcached 缓存有可能会出现冲突

为什么会冲突?原因可能是:WordPress 博客数据表前缀使用默认的 WP_(或者前缀相同),在访问网站读取 Memcached 缓存就会出现调用错误混淆。

解决方法很简单,各个博客数据表使用不一样前缀区分多个 WordPress 博客缓存区或者 wp-config.php 配置文件添加 WP_CACHE_KEY_SALT 区分即可解决,两个方法使用其中一个或者一起使用。

「多个 WordPress 博客使用 Memcached 缓存冲突如何解决?:https://bdkp.net/18」

WordPress 修改数据库前缀

方法一:修改 WordPress 数据库前缀。修改数据库有风险,操作前前请先备份好。

wp-config.php 修改数据库前缀

打开 wp-config.php 文件,把数据库前缀 wp_ 改成想要的前缀,比如 bd_。

$table_prefix  = 'bd_';

修改 WordPress 数据表名

登陆 phpMyAdmin,找到相应数据库,然后执行以下 SQL,把所有数据库表前缀从 wp_ 改成 bd_。

「多个 WordPress 博客使用 Memcached 缓存冲突如何解决?:https://bdkp.net/18」
RENAME table `wp_commentmeta` TO `bd_commentmeta`;
RENAME table `wp_comments` TO `bd_comments`;
RENAME table `wp_links` TO `bd_links`;
RENAME table `wp_options` TO `bd_options`;
RENAME table `wp_postmeta` TO `bd_postmeta`;
RENAME table `wp_posts` TO `bd_posts`;
RENAME table `wp_terms` TO `bd_terms`;
RENAME table `wp_term_relationships` TO `bd_term_relationships`;
RENAME table `wp_term_taxonomy` TO `bd_term_taxonomy`;
RENAME table `wp_usermeta` TO `bd_usermeta`;
RENAME table `wp_users` TO `bd_users`;

修改 WordPress 数据库 Options 表中数据

使用下面语句把 options 表中 option_name 以 wp_ 开头的值改成 bd_ 开头。

SELECT REPLACE(option_name, 'wp_', 'bd_') FROM bd_options;

修改 WordPress 数据库 UserMeta 表中数据

使用下面语句把 UserMeta 表中 meta_key 以 wp_ 开头的值改成 bd_ 开头。

SELECT REPLACE(meta_key, 'wp_', 'bd_') FROM bd_usermeta;

修改根目录下 wp-config.php 配置文件

方法二: wp-config.php 配置文件添加 WP_CACHE_KEY_SALT 定义,代码如下:

「多个 WordPress 博客使用 Memcached 缓存冲突如何解决?:https://bdkp.net/18」
define('WP_CACHE_KEY_SALT', 'example.com');

配置完毕需要重启 Memcached。

退出移动版