我在我的一个应用程序中使用redis进行缓存,我需要每天存储大约500,000个密钥&需要为所有键设置EXPIRE。 5天后,我将拥有大约250万个钥匙和钥匙。我为所有键设置了EXPIRE。 是否可以为按键设置EXPIRE&让redis每分钟扫描一次,找出过期密钥(According to the documentation)。 这会对性能产生多大影响?
对此有更好的选择吗?
我试图在Google上搜索,但没有发现性能问题。 我主要担心的是性能和记忆。
PS。目前,由于我的redis服务器上的密钥太多,我的redis空间不足。
答案 0 :(得分:1)
使用expires作为替换算法并不总是一个好主意,它就像FIFO一样。
答案取决于您的工作量。
如果你的工作量是完全随机的(没有比其他人更频繁地访问密钥),没有替换算法可以正常工作(因此,选择一个更简单的算法)。
如果旧密钥的访问次数少于最近的密钥,则FIFO可以。
如果更频繁地访问某些密钥(即,有热键),则lru更好。 请参阅Using Redis as an LRU cache。