

WordPress 出现 RedisException: OOM command not allowed when used memory > 'ma...
source link: https://www.ixiqin.com/2022/07/28/redisexception-wordpress-oom-command-not-allowed-the-when-informs-the-memory-maxmemory-error-of-how-to-deal-with/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.


WordPress 出现 RedisException: OOM command not allowed when used memory > ‘maxmemory’ 的报错怎么处理?
早晨起来,想登录博客,记录下自己的灵感,突然发现死活登录不上 WordPress 后台。
登录到 VPS 后台,发现没有出现我之前常出的问题 — 硬盘满了。于是再次回到网页端登录,仔细研究后发现,我的登录应该是成功的,但登录完成后,又重新跳转回来,根据这个情况,我猜测可能是登录态出现了问题。
于是尝试切换到 Safari 、Chrome 的无痕模式登录,依然没有解决问题。因此可以排除掉客户端的问题导致的。
接下来就是查看服务端问题。登录到服务器上,找到 WordPress 的日志,查看最近的几条日志,突然在众多 Notice 当中,看到了一个 Exception:
RedisException: OOM command not allowed when used memory > 'maxmemory'
看到这个报错,突然明白了问题在哪了。
我的 WordPress 使用 Redis 作为缓存,而我过去一直配置的缓存空间是 128M,看报错,显然是因为 Redis 使用的内存空间大于 128M,而我过去没有配置逐出机制(默认是 noeviction
),导致直接 OOM 爆掉了。
而我的登录态也使用了 Redis,没办法在缓存当中塞入新的 Key,自然登录也就失败了。
找到问题之后,下一步便是解决问题。
解决问题并不复杂,为 Redis 调整内存空间大小,并配置逐出机制,就可以解决这个问题。
maxmemory 221000000
maxmemory-policy allkeys-lru
将 Redis 逐出机制设置为 allkeys-lru
,并将内存设置为 200M 后,重启 Redis ,果然我的 WordPress 可以正常登录了。
allkeys-lru
表示对移除最近使用最少的 (least recently used)Key。
更多算法可以参考 Key Evicution
本条目发布于2022年7月28日。属于WordPress分类,被贴了 WordPress、开发经验 标签。
← 天下文功,唯真诚不破 在小程序中使用的 Canvas 2D API 绘制本地图片 →
发表回复 取消回复
您的电子邮箱地址不会被公开。 必填项已用*标注
评论 *
显示名称 *
电子邮箱地址 *
网站地址
在此浏览器中保存我的显示名称、邮箱地址和网站地址,以便下次评论时使用。
如果有人回复我的评论,请通过电子邮件通知我。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK