6

我有一个由 Sentinel 监控的 4 个节点、1 个主节点和 3 个从节点的 Redis 集群。

现在在 Rails 中,我需要连接到这个集群,从最近的副本读取,并写入主服务器,就像我使用 MongoDB 所做的一样。

使用redis-railsgem,如何配置cache_store来指定哨兵而不是单个节点?

4

1 回答 1

9

我可能错过了它,但我不知道您可以将其配置为从从站读取?但是,这是我的主 + 2 从配置:

config.cache_store = :redis_store, {
    url: 'redis://prestwick/1',
    sentinels: [{host: 'prestwick.i', port: 26379}, {host: 'carnoustie.i', port: 26379}, {host: 'birkdale.i', port: 26379}],
    role: 'master',
    expires_in: 1.hour
  }

如果有用,我对通用 REDIS 对象和 Sidekiq 的配置(位于 config/initializers/001_redis.rb 中):

redis_options = {
  url: 'redis://prestwick/0',
  sentinels: [{host: 'prestwick.i', port: 26379}, {host: 'carnoustie.i', port: 26379}, {host: 'birkdale.i', port: 26379}],
  role: 'master'
}
redis_sidekiq_options = {
  url: 'redis://prestwick/2',
  sentinels: [{host: 'prestwick.i', port: 26379}, {host: 'carnoustie.i', port: 26379}, {host: 'birkdale.i', port: 26379}],
  role: 'master'
}

REDIS = Redis.new(redis_options)

Sidekiq.configure_server do |config|
  config.redis = redis_sidekiq_options
end
Sidekiq.configure_client do |config|
  config.redis = redis_sidekiq_options
end
于 2015-05-06T15:41:40.217 回答