所以很多人将 Redis(通常通过 sidekiq)用于他们的 ActiveJob 队列。
redis 也是一个很好的候选者,可以用作 ActiveSupport::Cache后端。
但在我看来,对于这两种情况,您希望使用稍微不同的 Redis 配置。对于缓存使用,您可能想要 configure redis as an LRU cache ,当达到一定大小边界时自动驱逐最近使用较少的条目。
但是对于 ActiveJob 队列的使用,您当然不希望它以 LRU 方式丢弃排队的作业,重要的是 Redis 永远不会自行“过期”任何内容。
我认为没有办法同时以这两种方式使用同一个 redis 实例。
所以...在 Rails 中实际使用两个 redis 实例是否很常见?或者还有另一种解决方法吗?或者,redis 对于 ActiveSupport::Cache 后端来说实际上并不流行,人们在使用其他东西吗?
最佳答案
是的,使用多个不同配置的 Redis 实例很常见。
Sidekiq explicitly documents that作为推荐配置:
Many people use Redis as a cache [..] but it's important that Sidekiq be run against a Redis instance that is not configured as a cache but as a persistent store. I recommend using two separate Redis instances, each configured appropriately, if you wish to use Redis for caching and Sidekiq.
关于ruby-on-rails - redis 在 rails 中的使用,有多少使用两个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51969098/