Memory 为什么在redis内存已满的情况下,数据无法在磁盘上持久化?

Memory 为什么在redis内存已满的情况下,数据无法在磁盘上持久化?,memory,redis,configuration-files,disk,Memory,Redis,Configuration Files,Disk,在redis.conf文件中,我们将max memory policy设置为execution policy,将allkeys random设置为allkeys,并将4GB分配为max memory。我们插入了500万个密钥,但当我们实际检查dbsize时,它只显示了大约250万个密钥 所以我有一个问题,逐出策略是否只从内存或磁盘中删除密钥 理想情况下,只要给定的maxmemory已满,就应该将选择用于逐出的密钥刷新到磁盘,以便以后在需要时从磁盘检索这些密钥 Conf file注释只提到密钥将被

在redis.conf文件中,我们将max memory policy设置为execution policy,将allkeys random设置为allkeys,并将4GB分配为max memory。我们插入了500万个密钥,但当我们实际检查dbsize时,它只显示了大约250万个密钥

所以我有一个问题,逐出策略是否只从内存或磁盘中删除密钥

理想情况下,只要给定的maxmemory已满,就应该将选择用于逐出的密钥刷新到磁盘,以便以后在需要时从磁盘检索这些密钥

Conf file注释只提到密钥将被删除,但它并没有说明它们是仅从内存中删除还是也从磁盘(即持久存储)中删除


谢谢。

退出的密钥将从内存中删除。未触及磁盘快照。但是,当创建下一个快照时,磁盘上的值也将消失。

从内存中删除退出的密钥。未触及磁盘快照。但是,在创建下一个快照时,磁盘上的值也将消失。

感谢您的澄清,但我们没有什么疑问:那么,是否没有办法在内存较少的redis服务器中存储大型密钥数据集?i、 e.磁盘存储仅用于存储内存快照,而不是在内存溢出时作为磁盘存储?那么,这是否意味着redis只适用于总密钥可以放入redis服务器可用内存的应用程序?为什么它不将密钥从内存交换到磁盘,然后在需要时从磁盘加载回来呢?我试图搜索redis文档,但无法找出这些查询,所以请帮助。@Sohan:是的,没错。虚拟机支持被放弃,磁盘存储从未投入生产(或者反过来),因为人们通常不使用redis。这些特性使代码复杂化,降低了redis的速度,并且没有带来什么价值。如果您需要支持大于RAM的数据集,请查看其他产品。感谢您的澄清,但我们没有什么疑问:那么,是否没有办法在内存较少的redis服务器中存储大型密钥数据集?i、 e.磁盘存储仅用于存储内存快照,而不是在内存溢出时作为磁盘存储?那么,这是否意味着redis只适用于总密钥可以放入redis服务器可用内存的应用程序?为什么它不将密钥从内存交换到磁盘,然后在需要时从磁盘加载回来呢?我试图搜索redis文档,但无法找出这些查询,所以请帮助。@Sohan:是的,没错。虚拟机支持被放弃,磁盘存储从未投入生产(或者反过来),因为人们通常不使用redis。这些特性使代码复杂化,降低了redis的速度,并且没有带来什么价值。如果您需要支持大于RAM的数据集,请查看其他产品。