Dragon
  • 欢迎来到主题派官网,主题源码,插件,模板下载。wordpress,thinkphp,discuz,织梦模板,小程序。
主题派主题派  2023-06-16 15:40 主题派 隐藏边栏 |   抢沙发  2 
文章评分 0 次,平均分 0.0

经常使用 WordPress 并且多个站点的用户,使用 redis 缓存数据库时应该都遇到过多个站数据冲突的问题。

此问题官方有很多种处理方法。下面说下多站同时使用 redis 常用的几个方式。

 

1.创建 WordPress 站点时修改数据库前缀

我们 WordPress 在安装时有一步时创建数据库,其中默认数据库前缀是:wp_

我们可以随便更改一下字符比如改为 xxx_

这样数据在缓存时各个库之间就不会出现数据冲突的问题了。这也是最建议的方式,我们以后创建站点建议都更改掉默认的数据库前缀。

 

2.在 wp-config.php 配置文件中修改相关常量

wp-config.php 配置文件是我们经常修改的一个文件。本站发过很多再 wp-config.php 文件中添加或删除各种功能的代码。

此种方式适合已经创建的站点,不适合再操作数据库的情况。

此方式来源于官方文档:

默认情况下,对象缓存插件将通过 TCP 连接到 Redis 127.0.0.1:6379 并选择 database 0 库。

要调整连接参数,可以在 wp-config.php 文件中定义以下任何常量。

define( 'WP_REDIS_HOST', '127.0.0.1' ); define( 'WP_REDIS_PORT', 6379 ); // define( 'WP_REDIS_PASSWORD', 'secret' ); define( 'WP_REDIS_TIMEOUT', 1 ); define( 'WP_REDIS_READ_TIMEOUT', 1 ); // change the database for each site to avoid cache collisions define( 'WP_REDIS_DATABASE', 0 ); // supported clients: `phpredis`, `credis`, `predis` and `hhvm` // define( 'WP_REDIS_CLIENT', 'phpredis' ); // automatically delete cache keys after 7 days // define( 'WP_REDIS_MAXTTL', 60 * 60 * 24 * 7 ); // bypass the object cache, useful for debugging // define( 'WP_REDIS_DISABLED', true );

其中 define( 'WP_REDIS_DATABASE’, 0 );这里后面的数值 0 就是更改 redis 库的参数。redis 默认是 16 个库,各个站设为不同值即可,比如改成 1 或者 2、3、4、5、6 等等。

 

其他设置项的解释(来自谷歌翻译):

 

WP_REDIS_SCHEME(默认值:tcp) 指定用于与 Redis 实例通信的协议。在内部,客户端使用与指定连接方案关联的连接类。支持 tcp(TCP/IP)、unix(UNIX 域套接字)、tls(传输层安全)或 http(通过 Webdis 的 HTTP 协议)。 WP_REDIS_HOST(默认值:127.0.0.1) 目标服务器的 IP 或主机名。当使用 UNIX 域套接字连接到 Redis 时,这将被忽略。 WP_REDIS_PORT(默认值:6379) 目标服务器的 TCP/IP 端口。当使用 UNIX 域套接字连接到 Redis 时,这将被忽略。 WP_REDIS_PATH(默认:未设置) 使用 UNIX 域套接字连接到 Redis 时使用的 UNIX 域套接字文件的路径。 WP_REDIS_DATABASE(默认值:0) 接受用于通过 SELECT 命令自动选择逻辑数据库的数值。 WP_REDIS_PASSWORD(默认:未设置) 接受一个值,该值用于通过 AUTH 命令向受密码保护的 Redis 服务器进行身份验证。 要使用 Redis 6 的 ACL,请将其设置为['username', 'password']数组(需要 PhpRedis 5.3+)。 WP_REDIS_TIMEOUT(默认值:5) 在失败之前尝试初始连接到 Redis 服务器的时间(以秒为单位)(允许几分之一秒)。 WP_REDIS_READ_TIMEOUT(默认值:5) 在失败之前尝试从 Redis 服务器读取的时间(以秒为单位)(允许几分之一秒)。 WP_REDIS_RETRY_INTERVAL(默认:未设置) 重试失败的连接尝试的时间(以毫秒为单位)。

 

3.更改 redis 缓存插件配置文件

这里以 Redis Object Cache 缓存插件为例。

此插件在服务器上得文件目录为/wp-content/plugins/redis-cache/

在其 includes 目录下有个 object-cache.php 文件,修改它即可。

大致在 546 行,更改 database 值即可,默认值为 0

保存文件后重新启动 Redis Object Cache 缓存插件。

 

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

主题派给主题派打赏
×
予人玫瑰,手有余香
  • 2
  • 5
  • 10
  • 20
  • 50
2
支付

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

主题派
主题派 关注:0    粉丝:0
Wordpress主题,插件,源码商城

发表评论

表情 格式 贴图 链接 私密 签到 常用语
扫一扫二维码分享
×
艾瑞克网