我在redis中存储了一堆实时数据.我在所有按键上设置了14400秒(4小时)的TTL.我已经将maxmemory设置为10G,目前没有足够的空间来容纳4小时的内存数据,而且我没有使用虚拟内存,因此redis在数据到期之前将其逐出.
我很好用redis驱逐数据,但我希望它首先驱逐最旧的数据.所以,即使我没有整整4个小时的数据,至少我可以有一个不带间隙的某一范围的数据(3小时,2小时等).我试图通过设置来实现这一目标maxmemory-policy=volatile-ttl,因为他们认为最旧的密钥会被驱逐,因为它们都具有相同的TTL,但它不是那样工作的.似乎redis有点随意地驱逐数据,所以最终我的数据存在差距.例如,今天2012-01-25T13:00的数据在2012-01-25T12:00之前的数据被逐出.
是否可以将redis配置为始终首先逐出旧数据?
以下是我的redis.cnf文件中的相关行.如果您想要查看更多的配置,请告诉我们:
maxmemory 10gb
maxmemory-policy volatile-ttl
vm-enabled no
Run Code Online (Sandbox Code Playgroud)