为redis中的所有键设置expire是一个好习惯

Nam*_*ion 6 performance storage ttl redis

我在我的一个应用程序中使用redis进行缓存,我需要每天存储大约500,000个密钥,并且需要为所有密钥设置EXPIRE.5天后,我将拥有大约250万个密钥,并且我已经为所有密钥设置了EXPIRE.是否可以为键设置EXPIRE并让redis每分钟扫描一次以找出过期密钥(根据文档).这会对性能产生多大影响?

有更好的选择吗?

我试图搜索谷歌,但没有发现性能.我主要担心的是性能和记忆.

PS.目前我的redis因为我的redis服务器上的键太多而空间不足.

Min*_* Fu 4

使用过期作为替换算法并不总是一个好主意,它的工作原理类似于 FIFO。

答案取决于您的工作量。

如果您的工作负载是完全随机的(没有一个密钥的访问频率比其他密钥更频繁),则没有替代算法效果很好(因此,选择一个更简单的算法)。

如果较旧的密钥比最近的密钥访问较少,则 FIFO 就可以。

如果某些键访问比较频繁(即有热键),lru 更好。请参阅使用 Redis 作为 LRU 缓存