ruby-on-rails - redis 在 rails 中的使用,有多少使用两个?

标签 ruby-on-rails redis

所以很多人将 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/

相关文章:

ruby-on-rails - Docker Nginx反向代理返回502错误的网关 “connection refused while connecting to upstream”

ruby-on-rails - 如果我在 Ruby on Rails 中将 Controller 命名为 "leaves",为什么会出现错误

javascript - 在 ajax :beforeSend (link_to)? 中添加额外数据

ruby-on-rails - Rails:PG::ConnectionBad(连接已关闭)

python - Redis - 如何 RPUSH/LPUSH 一个空列表

node.js - 将 Angular 和 Node Express CSRF 与 Redis session 一起使用,如何在 session 过期后重置 session 信息和 CSRF?

java - JedisPool 内存泄漏

node.js - 更新后Redis-om搜索找不到key

php - Yii2 + redis类报错

ruby-on-rails - 尽管在 rake 路由中可用,但出现奇怪的路由错误