Wordpress

解决WordPress开启Redis Object Cache后,无法登录问题。

微信扫一扫,分享到朋友圈

解决WordPress开启Redis Object Cache后,无法登录问题。
0

最新为了加速网站的访问,我安装Redis Object Cache软件。

并且在wp-config.php中也添加了对应的代码配置

define("WP_CACHE_KEY_SALT",'trojansun_');
define('WP_REDIS_SELECTIVE_FLUSH',true);

配置完成后,可以在管理面板看到如下内容

可是当我们退出之后,发现竟然无法登录

从晚上找了一圈,一般的方法都是清空redis,但是我既然用了redis,我如果每次登录都清空,那么意义何在?

所以经过多方尝试,我也采用了删除部分key的方法。

下面是SHELL脚本,不是redis脚本,切记不要运行错了地方。

redis-cli keys "wp_:user*" | xargs redis-cli del

这个脚本主要是删除wp_用户相关的信息,删除之后,就可以登陆了。(如果是多用户,我觉得就很坑,不可能让网站用户去删除相关信息吧。)

唯一可以想到的解决办法,就是删除对应的user key,可以在退出的时候,使用PHP删除redis里面的user key(但是如果不是退出估计就不行了),更或者直接不缓存这几个字段就好了。

发现一个新的解决方法,就是在wp-config.php中去掉

define("WP_CACHE_KEY_SALT",'trojansun_');
define('WP_REDIS_SELECTIVE_FLUSH',true);

胡乱猜想下:

  • 第一个是设置所有缓存键的前缀
  • 第二个是如果设置为true,则刷新缓存只会删除带前缀的键WP_CACHE_KEY_SALT(而不是清空整个Redis数据库)。选择性冲洗是原子O(n)操作。

如果我们设置了WP_CACHE_KEY_SALT,但是 WP_REDIS_GLOBAL_GROUPS 中去掉的是user_meta,也许是与包含前缀有冲突。

一个后端程序员,却非要干点前端的事。攻城已有十年,暂未留下任何印记。

下载App store历史软件

上一篇

Vue-cli创建项目

下一篇

你也可能喜欢

    暂无相关文章!

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
解决WordPress开启Redis Object Cache后,无法登录问题。

长按储存图像,分享给朋友