Redis的noeviction
策略表示当内存不足以容纳新写入数据时,新写入操作会报错。这意味着它不会通过删除键来释放内存空间。因此,在高并发场景下,如果数据量持续快速增长,noeviction
策略可能会导致频繁的写入失败和应用程序错误。
在高并发场景下,更推荐使用以下两种策略:
-
allkeys-lru
:这是Redis的默认淘汰策略。当内存不足以容纳新写入数据时,它会根据LRU(最近最少使用)算法删除键来释放内存空间。这种策略可以在一定程度上平衡内存使用和性能,但在高并发场景下可能无法完全满足需求。 -
volatile-lru
:这种策略与allkeys-lru
类似,但它只会在设置了过期时间的键上应用LRU算法。这可以在一定程度上减少因缓存穿透导致的内存泄漏问题。
总之,noeviction
策略在高并发场景下可能无法满足需求,建议根据实际业务场景选择合适的淘汰策略。