我是redis的新手,在网上找不到任何信息,所以在这里询问。
假设我有多个数据库redis集群,并且使用lru/lfu逐出策略。
我想知道redis逐出策略是否基于数据库?我的意思是,假设我正在尝试向db0插入一个新项,并且内存不足,redis是否会逐出db0中的项并完成插入?或者它会根据逐出策略逐出任何数据库中的项吗?
我希望逐出将在同一个虚拟数据库中。
如果逐出策略跨不同的数据库,如果达到数据库的大小限制,会发生什么情况?它会根据逐出策略逐出数据库中的密钥,还是插入失败?
谢谢。
我是redis的新手,在网上找不到任何信息,所以在这里询问。
假设我有多个数据库redis集群,并且使用lru/lfu逐出策略。
我想知道redis逐出策略是否基于数据库?我的意思是,假设我正在尝试向db0插入一个新项,并且内存不足,redis是否会逐出db0中的项并完成插入?或者它会根据逐出策略逐出任何数据库中的项吗?
我希望逐出将在同一个虚拟数据库中。
如果逐出策略跨不同的数据库,如果达到数据库的大小限制,会发生什么情况?它会根据逐出策略逐出数据库中的密钥,还是插入失败?
谢谢。
1条答案
按热度按时间oyjwcjzk1#
我做了一个简单的测试来看看它;
当您将maxmemory设置为
database 0
,其他数据库也有相同的maxmemory
价值观。当您运行时,它们都共享相同的资源(内存)INFO MEMORY
在任何数据库中,它们都会打印相同的值(没有共享它-很大-但您可以测试)。我认为这不是特定于数据库的,它们实际上是分开的。不是只有一个数据库内存不足,而是所有数据库内存不足。