2015-05-06 3 views
3

У меня есть кластер Redis из 4 узлов, 1 мастер и 3 подчиненных, контролируемый Sentinel.Rails, Redis и Sentinel

Теперь в рельсах мне нужно подключиться к этому кластеру, читая от ближайшей реплики и записывая мастеру, так же, как и с MongoDB.

Использование драгоценного камня redis-rails, как можно настроить cache_store для указания Стражей вместо одного узла?

ответ

4

Возможно, я пропустил его, но я не знал, что вы можете настроить его для чтения с подчиненных? Тем не менее, это моя конфигурация мастер + 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 (это в конфиге/инициализаторов/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 

 Смежные вопросы

  • Нет связанных вопросов^_^