У меня проблемы с кластерной функциональностью go-redis
; Я использую go-redis
cluster
со своим собственным ClusterSlots
fun c для поддержки информации о слотах кластера, и мой redis - это не кластер, а набор узлов master / slave redis. Мои подчиненные узлы по сути являются репликами, поэтому я не хочу отправлять им какие-либо операции записи.
Приложение работает нормально в среде высокой нагрузки около двух часов, и оно начало отправлять запросы записи на подчиненные узлы. Я установил MaxRedirects на -1
и ReadOnly на false
, но, похоже, клиент не выбирает ТОЛЬКО мастер-узел и сбой / тайм-аут вместо аварийного переключения на подчиненное устройство.
Вот мой redis.ClusterOptions
:
redisConf := &redis.ClusterOptions{
ReadOnly: false,
RouteRandomly: false,
MinIdleConns: 150,
MaxRetries: 16,
MaxRedirects: -1,
PoolSize: 2000,
ReadTimeout: time.Millisecond * 5000,
WriteTimeout: time.Millisecond * 5000,
DialTimeout: time.Millisecond * 5000,
PoolTimeout: time.Millisecond * 7000,
IdleCheckFrequency: time.Minute * 1,
}
Пожалуйста, посоветуйте, как мне настроить мою конфигурацию кластера go-redis
, чтобы она общалась только с главными узлами. Заранее спасибо.