报警:Redis 内存接近上限。上去一看,maxmemory-policy 是 allkeys-lru。
问题:这个策略会淘汰任何键,包括我存的任务状态。结果任务状态被淘汰,业务逻辑走错分支。
改:
- 分实例。缓存和状态数据分两个 Redis,各自设策略。
- 缓存实例用 allkeys-lru,状态实例用 noeviction(宁可写失败也不丢)。
- 状态数据设置合理 TTL,别永久占着。
general 经验:Redis 存业务状态是常见的坏味道。它本质是缓存,持久化不可靠。真需要状态就用数据库,Redis 只做加速。
主楼- 暂无回复
继续逛逛