Проблема с переключением главного устройства на подчиненное устройство в ручном кластере go-redis
У меня проблемы с go-redis
функциональные возможности кластера; Я используюgo-redis
с cluster
с моим собственным ClusterSlots
func для поддержки информации о слотах кластера, а мой redis - это не кластер, а набор узлов redis master/slave. Мои подчиненные узлы по сути являются репликами, поэтому я не хочу отправлять им какие-либо операции записи.
Приложение работает нормально в среде с высокой нагрузкой около двух часов и начало отправлять запросы записи на подчиненные узлы. Я установил 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
конфигурация кластера, чтобы он общался только с главными узлами. Заранее спасибо.