diff --git a/lib/redis/client.rb b/lib/redis/client.rb index 60631f29e..270eb11f4 100644 --- a/lib/redis/client.rb +++ b/lib/redis/client.rb @@ -126,6 +126,8 @@ def connect call [:auth, password] end end + + call [:readonly] if @options[:readonly] call [:select, db] if db != 0 call [:client, :setname, @options[:id]] if @options[:id] @connector.check(self) diff --git a/lib/redis/cluster/node.rb b/lib/redis/cluster/node.rb index 6040ea8ea..f3be41461 100644 --- a/lib/redis/cluster/node.rb +++ b/lib/redis/cluster/node.rb @@ -76,8 +76,9 @@ def build_clients(options) clients = options.map do |node_key, option| next if replica_disabled? && slave?(node_key) + option = option.merge(readonly: true) if slave?(node_key) + client = Client.new(option) - client.call(%i[readonly]) if slave?(node_key) [node_key, client] end