我们正在使用redis来存储购物车数据。我们发现一些超过一个月的推车不再可用。我假设数据会一直存在,并且应该随时可用。是否有任何设置我必须检查以检查为什么某些旧数据被删除?存储数据时没有设置TTL。
答案 0 :(得分:1)
也许它达到你的redis maxmemory ,看看redis.conf中的两个配置 maxmemory 和 maxmemory-policy
当达到maxmemory时,redis遵循maxmemory-policy指定的动作,可以是allkeys-lru或noeviction。如果策略是lru,则旧数据将被删除。
正如redis docs所说:
noeviction:当达到内存限制并且客户端尝试执行可能导致使用更多内存的命令时返回错误(大多数写命令,但DEL和一些例外)。
allkeys-lru:首先尝试删除最近使用较少的(LRU)密钥来逐出密钥,以便为添加的新数据腾出空间。