作为一个 WordPress 插件,Redis Object Cache 本身即开即用,但是需要做更多环境配置来使之正常运行。
如果你遇到了任何由插件引起的问题,移除 /wp-content/object-cache.php 来暂时禁用插件,以访问站点后台。
此配置能够解决访问 /wp-admin 时出现的“抱歉,您无法访问此站点”错误。
配置 WordPress
如果你在安装插件之后出现与数据库有关的报错,请前往 /wp-config.php 指定数据库信息。
应当注意数据库信息的位置。object-cache.php 是在 wp-settings.php 执行过程中加载的,如果在引入 wp-settings.php 之后才定义变量,就会导致设置失效。所以务必在引入 wp-settings.php 之前添加这些数据库设置,如下所示。
// Redis Access
// adjust Redis host and port if necessary
define( 'WP_REDIS_HOST', 'Host' );
define( 'WP_REDIS_PORT', 1234 );
define( 'WP_REDIS_PASSWORD', 'Password' );
/* That's all, stop editing! Happy publishing. */
/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';
我使用的是 1panel 来部署 Redis,直接填写 1panel 所提供的主机名即可正常访问。
配置 Redis
当缓存数据占满内存时,Redis 会拒绝写入,引起如访问后台时出现“抱歉,您无法访问该站点”等站点错误。因而需要修改最大内存限制和内存驱逐策略。插件作者承认这是一种“无降级机制”的设计缺陷:一旦 Redis 服务中断,整个网站后台会直接崩溃。
插件文档提及,不设置驱逐策略是危险的,会导致 Redis 内存耗尽后拒绝服务,进而使 WordPress 崩溃。
maxmemory 可参考的大小大约为本机内存的 1/8。
allkeys-lru 是最通用的设置,而 allkeys-lfu 则在特定场景下可能表现更好。
在 redis.conf 中使用查找功能,根据实际情况取消注释,作如下设置。
maxmemory 256mb
maxmemory-policy allkeys-lru

Comments NOTHING