redis在rails中使用,有多少使用两个?

jro*_*ind 2 ruby-on-rails redis

因此很多人使用 Redis(通常通过 sidekiq)作为他们的 ActiveJob 队列。

Redis 也是用作ActiveSupport::Cache后端的一个很好的候选者。

但在我看来,对于这两种情况,您可能需要一些不同的 redis 配置。对于缓存使用,您可能希望将 Redis 配置为 LRU 缓存,当达到特定大小边界时自动驱逐最近较少使用的条目。

但是对于 ActiveJob 队列的使用,您当然不希望它以 LRU 方式删除排队的作业,重要的是 redis 永远不会自行“过期”任何内容。

我认为没有办法同时以这两种方式使用同一个 redis 实例。

那么...在 Rails 中实际使用两个Redis 实例是否很常见?或者还有另一种方法可以解决我所缺少的问题吗?或者 Redis 对于 ActiveSupport::Cache 后端实际上并不流行,人们是否使用其他东西?

mat*_*ewd 5

是的,使用多个不同配置的 Redis 实例是很常见的。

Sidekiq明确记录了推荐配置:

许多人使用 Redis 作为缓存 [..] 但重要的是,Sidekiq 必须针对未配置为缓存而是配置为持久存储的 Redis 实例运行。如果您希望使用 Redis 进行缓存和 Sidekiq,我建议使用两个单独的 Redis 实例,每个实例都进行适当配置。