当RAM满时,redis中是否有基于数据库的密钥收回策略

当RAM满时,redis中是否有基于数据库的密钥收回策略,redis,lru,evict,Redis,Lru,Evict,我在我的redis服务器上使用了5个数据库。我想使用LRU机制逐出属于特定DB的密钥。可能吗 我读到这个: 但我所有的数据库都在使用“生存时间”来保存它们的条目。因此不能使用波动性lru策略 我尝试了volatile ttl策略,但其他数据库的密钥使用的ttl更少。因此,它们将被逐出,这是我不想要的。这是使用编号/共享数据库的效果之一——它们都共享相同的配置和资源。您应该考虑使用单独的ReDIS服务器,每个数据库中的一个,以更好地控制什么被驱逐和何时。更重要的是,使用专用实例可以更好地利用服务器

我在我的redis服务器上使用了5个数据库。我想使用LRU机制逐出属于特定DB的密钥。可能吗

我读到这个:

但我所有的数据库都在使用“生存时间”来保存它们的条目。因此不能使用波动性lru策略


我尝试了volatile ttl策略,但其他数据库的密钥使用的ttl更少。因此,它们将被逐出,这是我不想要的。

这是使用编号/共享数据库的效果之一——它们都共享相同的配置和资源。您应该考虑使用单独的ReDIS服务器,每个数据库中的一个,以更好地控制什么被驱逐和何时。更重要的是,使用专用实例可以更好地利用服务器拥有的核心。

我读过关于在同一台服务器上使用不同redis实例的文章。我们可以通过启动另一个具有不同端口的守护进程,从不同的文件读取其配置来轻松完成这一任务。(不是默认的redis.config)。这在我的开发中运行良好,但我在生产中使用了Amazon的AWS elasticache redis。不确定是否可以在elasticache redis中推送单独的守护进程。有可能吗?不,据我所知,用elasticache是不可能的。但是,有一个RaaS(Redis-as-a-Service)提供商支持这种操作模式(即专用Redis实例),因此如果您对这一点感兴趣,您应该查看Redis Cloud。