Redis驱逐政策澄清

Redis驱逐政策澄清,redis,spring-data-redis,redis-cluster,Redis,Spring Data Redis,Redis Cluster,我是Redis的新手,在网上找不到任何相关信息,所以请在这里询问。 假设我有多个数据库Redis集群,并且我正在使用LRU/LFU逐出策略 我想知道Redis逐出策略是否基于数据库?我的意思是,假设我试图将一个新项目插入到DB 0中,并且我的内存不足,Redis是否会退出DB 0中的项目并完成插入?或者它会根据逐出策略逐出任何数据库中的项目 我希望逐出将在同一个虚拟数据库中。 如果逐出策略跨不同的数据库,如果达到数据库的大小限制,会发生什么情况?它是否会根据逐出策略逐出DB中的键,或者插入将失败

我是Redis的新手,在网上找不到任何相关信息,所以请在这里询问。
假设我有多个数据库Redis集群,并且我正在使用LRU/LFU逐出策略

我想知道Redis逐出策略是否基于数据库?我的意思是,假设我试图将一个新项目插入到DB 0中,并且我的内存不足,Redis是否会退出DB 0中的项目并完成插入?或者它会根据逐出策略逐出任何数据库中的项目

我希望逐出将在同一个虚拟数据库中。
如果逐出策略跨不同的数据库,如果达到数据库的大小限制,会发生什么情况?它是否会根据逐出策略逐出DB中的键,或者插入将失败?

谢谢。

我做了一个简单的测试来查看它

127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "0"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> config get maxmemory
1) "maxmemory"
2) "0"
127.0.0.1:6379[1]> config set maxmemory 100mb
OK
127.0.0.1:6379[1]> config get maxmemory
1) "maxmemory"
2) "104857600"
127.0.0.1:6379[1]> select 0
OK
127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "104857600"
127.0.0.1:6379> select 2
OK
127.0.0.1:6379[2]> config get maxmemory
1) "maxmemory"
2) "104857600"
127.0.0.1:6379[2]>
正如您在将maxmemory设置为
数据库0
时所看到的,其他数据库也具有相同的
maxmemory
值。它们都共享相同的资源(内存),当您在任何数据库中运行
INFO memory
时,它们将打印相同的值(没有共享它-很大-但您可以测试)


我认为这不是特定于数据库的,它们实际上是分开的。并非只有一个数据库内存不足,而是所有数据库内存不足。

正确-所有逻辑数据库共享所有配置设置(例如maxmemory、save…)-换句话说,配置是全局的