redis锁应该在seaprate示例上运行吗?

gc0ot86w  于 2021-06-09  发布在  Redis
关注(0)|答案(1)|浏览(352)

我们正在使用:
azure上的标准redis
堆栈交换.redis
红锁.net
根据cloudflare的数据,我们的网站在过去的一两年里有了显著的增长,现在每个月提供大约250000000个未缓存的请求。
偶尔,我们会看到几百个异常在突发事件中与redlock无法获得锁相关,因为它处于 Conflicted 州。
我们的redis缓存通常:
以10%的服务器负载运行(我认为这与cpu有关)
但运行接近100%的内存使用率
我的问题是:
是否建议使用完全不同的redis服务器进行锁定?
在redis服务器中使用100%内存会导致创建锁时出现问题吗?

1bqhqjot

1bqhqjot1#

当您查看缓存性能指标时,故障是否与100%内存使用率一致?如果是这样,我敢打赌那就是罪魁祸首。
当redis达到100%内存时,可能会发生页面错误,从而减慢请求速度。有关过程的描述,请参见此处。我可以想象,当内存压力达到100%并且请求被延迟时,获取锁的5ms redlock.net时间限制将过期。
我会启动第二个redis服务器来锁定,看看它是否能缓解问题,或者扩展现有的缓存。看看你是否还经历过这个问题。扩展可能是最简单的实验,而不必对代码进行更改。

相关问题