最近发现一个 bug,set 数据时无异常不报错,但是 get 却取不到? 通过监控发现是其中一个分片内存 100%了。 哪位大神帮忙解惑下? (采买的是阿里云 redis 社区版本集群 2 分片)
1
thet 2021-08-04 11:38:59 +08:00 via iPhone
迁移 slot 或者扩节点
|
2
zhuifeng1017 OP 另外一个分片内存还剩 40%呢
|
3
ywisax 2021-08-04 12:24:57 +08:00
我使用腾讯云的 redis 时,遇过这个问题,会导致部分 redis 读写请求失败,整体很诡异。
|
4
Ariver 2021-08-04 12:27:14 +08:00
过期策略?
监控? |
5
zhuifeng1017 OP @ywisax . 关键是写的时候不抛异常,这个要命啊。
举个例子: 登陆成功需要保存 token 到 redis,结果所有 api 请求一直报 token 失效。坑啊 |
6
Mitt 2021-08-04 13:51:49 +08:00
@zhuifeng1017 #5 会不会是因为每秒都有大量数据塞到 redis 里,redis 提前淘汰数据,你刚保存进去的就被淘汰掉了所以才获取不到的?猜测
|
7
zhuifeng1017 OP @Mitt . 确实有这种可能。但是设置的淘汰策略为 volatile-lru 呢,应该是淘汰过期的 key 吧。
如果 redis 内存确实满了,为了不爆而将刚写入的数据给清空了,脑裂~ 总之,分片满了就赶紧想办法吧,不然必定出事故 |