Class: RedisClient::ClusterConfig
- Inherits:
-
Object
- Object
- RedisClient::ClusterConfig
- Defined in:
- lib/redis_client/cluster_config.rb
Constant Summary collapse
- DEFAULT_NODE =
"#{DEFAULT_SCHEME}://#{DEFAULT_HOST}:#{DEFAULT_PORT}"- InvalidClientConfigError =
Class.new(::RedisClient::Cluster::Error)
Instance Attribute Summary collapse
-
#client_config ⇒ Object
readonly
Returns the value of attribute client_config.
-
#command_builder ⇒ Object
readonly
Returns the value of attribute command_builder.
-
#connect_with_original_config ⇒ Object
readonly
Returns the value of attribute connect_with_original_config.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#max_startup_sample ⇒ Object
readonly
Returns the value of attribute max_startup_sample.
-
#replica_affinity ⇒ Object
readonly
Returns the value of attribute replica_affinity.
-
#slow_command_timeout ⇒ Object
readonly
Returns the value of attribute slow_command_timeout.
-
#startup_nodes ⇒ Object
readonly
Returns the value of attribute startup_nodes.
Instance Method Summary collapse
- #client_config_for_node(node_key) ⇒ Object
- #connect_timeout ⇒ Object
-
#initialize(nodes: DEFAULT_NODES, replica: false, replica_affinity: :random, fixed_hostname: '', concurrency: nil, connect_with_original_config: false, client_implementation: ::RedisClient::Cluster, slow_command_timeout: SLOW_COMMAND_TIMEOUT, command_builder: ::RedisClient::CommandBuilder, max_startup_sample: MAX_STARTUP_SAMPLE, **client_config) ⇒ ClusterConfig
constructor
rubocop:disable Metrics/ParameterLists.
- #inspect ⇒ Object
- #new_client(**kwargs) ⇒ Object
- #new_pool(size: 5, timeout: 5, **kwargs) ⇒ Object
- #read_timeout ⇒ Object
- #resolved? ⇒ Boolean
- #sentinel? ⇒ Boolean
- #server_url ⇒ Object
- #use_replica? ⇒ Boolean
- #write_timeout ⇒ Object
Constructor Details
#initialize(nodes: DEFAULT_NODES, replica: false, replica_affinity: :random, fixed_hostname: '', concurrency: nil, connect_with_original_config: false, client_implementation: ::RedisClient::Cluster, slow_command_timeout: SLOW_COMMAND_TIMEOUT, command_builder: ::RedisClient::CommandBuilder, max_startup_sample: MAX_STARTUP_SAMPLE, **client_config) ⇒ ClusterConfig
rubocop:disable Metrics/ParameterLists
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/redis_client/cluster_config.rb', line 44 def initialize( # rubocop:disable Metrics/ParameterLists nodes: DEFAULT_NODES, replica: false, replica_affinity: :random, fixed_hostname: '', concurrency: nil, connect_with_original_config: false, client_implementation: ::RedisClient::Cluster, # for redis gem slow_command_timeout: SLOW_COMMAND_TIMEOUT, command_builder: ::RedisClient::CommandBuilder, max_startup_sample: MAX_STARTUP_SAMPLE, **client_config ) @replica = true & replica @replica_affinity = replica_affinity.to_s.to_sym @fixed_hostname = fixed_hostname.to_s @command_builder = command_builder node_configs = build_node_configs(nodes.dup) @client_config = merge_generic_config(client_config, node_configs) # Keep tabs on the original startup nodes we were constructed with @startup_nodes = build_startup_nodes(node_configs) @concurrency = merge_concurrency_option(concurrency) @connect_with_original_config = connect_with_original_config @client_implementation = client_implementation @slow_command_timeout = slow_command_timeout @max_startup_sample = max_startup_sample @id = client_config[:id] end |
Instance Attribute Details
#client_config ⇒ Object (readonly)
Returns the value of attribute client_config.
41 42 43 |
# File 'lib/redis_client/cluster_config.rb', line 41 def client_config @client_config end |
#command_builder ⇒ Object (readonly)
Returns the value of attribute command_builder.
41 42 43 |
# File 'lib/redis_client/cluster_config.rb', line 41 def command_builder @command_builder end |
#connect_with_original_config ⇒ Object (readonly)
Returns the value of attribute connect_with_original_config.
41 42 43 |
# File 'lib/redis_client/cluster_config.rb', line 41 def connect_with_original_config @connect_with_original_config end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
41 42 43 |
# File 'lib/redis_client/cluster_config.rb', line 41 def id @id end |
#max_startup_sample ⇒ Object (readonly)
Returns the value of attribute max_startup_sample.
41 42 43 |
# File 'lib/redis_client/cluster_config.rb', line 41 def max_startup_sample @max_startup_sample end |
#replica_affinity ⇒ Object (readonly)
Returns the value of attribute replica_affinity.
41 42 43 |
# File 'lib/redis_client/cluster_config.rb', line 41 def replica_affinity @replica_affinity end |
#slow_command_timeout ⇒ Object (readonly)
Returns the value of attribute slow_command_timeout.
41 42 43 |
# File 'lib/redis_client/cluster_config.rb', line 41 def slow_command_timeout @slow_command_timeout end |
#startup_nodes ⇒ Object (readonly)
Returns the value of attribute startup_nodes.
41 42 43 |
# File 'lib/redis_client/cluster_config.rb', line 41 def startup_nodes @startup_nodes end |
Instance Method Details
#client_config_for_node(node_key) ⇒ Object
106 107 108 109 110 |
# File 'lib/redis_client/cluster_config.rb', line 106 def client_config_for_node(node_key) config = ::RedisClient::Cluster::NodeKey.hashify(node_key) config[:port] = ensure_integer(config[:port]) augment_client_config(config) end |
#connect_timeout ⇒ Object
77 78 79 |
# File 'lib/redis_client/cluster_config.rb', line 77 def connect_timeout @client_config[:connect_timeout] || @client_config[:timeout] || ::RedisClient::Config::DEFAULT_TIMEOUT end |
#inspect ⇒ Object
73 74 75 |
# File 'lib/redis_client/cluster_config.rb', line 73 def inspect "#<#{self.class.name} #{startup_nodes.values.map { |v| redact_for_inspect(v) }}>" end |
#new_client(**kwargs) ⇒ Object
98 99 100 |
# File 'lib/redis_client/cluster_config.rb', line 98 def new_client(**kwargs) @client_implementation.new(self, concurrency: @concurrency, **kwargs) end |
#new_pool(size: 5, timeout: 5, **kwargs) ⇒ Object
89 90 91 92 93 94 95 96 |
# File 'lib/redis_client/cluster_config.rb', line 89 def new_pool(size: 5, timeout: 5, **kwargs) @client_implementation.new( self, pool: { size: size, timeout: timeout }, concurrency: @concurrency, **kwargs ) end |
#read_timeout ⇒ Object
81 82 83 |
# File 'lib/redis_client/cluster_config.rb', line 81 def read_timeout @client_config[:read_timeout] || @client_config[:timeout] || ::RedisClient::Config::DEFAULT_TIMEOUT end |
#resolved? ⇒ Boolean
112 113 114 |
# File 'lib/redis_client/cluster_config.rb', line 112 def resolved? true end |
#sentinel? ⇒ Boolean
116 117 118 |
# File 'lib/redis_client/cluster_config.rb', line 116 def sentinel? false end |
#server_url ⇒ Object
120 121 122 |
# File 'lib/redis_client/cluster_config.rb', line 120 def server_url nil end |
#use_replica? ⇒ Boolean
102 103 104 |
# File 'lib/redis_client/cluster_config.rb', line 102 def use_replica? @replica end |
#write_timeout ⇒ Object
85 86 87 |
# File 'lib/redis_client/cluster_config.rb', line 85 def write_timeout @client_config[:write_timeout] || @client_config[:timeout] || ::RedisClient::Config::DEFAULT_TIMEOUT end |