Class: RedisClient::ClusterConfig
- Inherits:
-
Object
- Object
- RedisClient::ClusterConfig
- Defined in:
- lib/redis_client/cluster_config.rb
Constant Summary collapse
- 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
-
#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
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
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/redis_client/cluster_config.rb', line 37 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.
34 35 36 |
# File 'lib/redis_client/cluster_config.rb', line 34 def client_config @client_config end |
#command_builder ⇒ Object (readonly)
Returns the value of attribute command_builder.
34 35 36 |
# File 'lib/redis_client/cluster_config.rb', line 34 def command_builder @command_builder end |
#connect_with_original_config ⇒ Object (readonly)
Returns the value of attribute connect_with_original_config.
34 35 36 |
# File 'lib/redis_client/cluster_config.rb', line 34 def connect_with_original_config @connect_with_original_config end |
#id ⇒ Object (readonly)
Returns the value of attribute id.
34 35 36 |
# File 'lib/redis_client/cluster_config.rb', line 34 def id @id end |
#max_startup_sample ⇒ Object (readonly)
Returns the value of attribute max_startup_sample.
34 35 36 |
# File 'lib/redis_client/cluster_config.rb', line 34 def max_startup_sample @max_startup_sample end |
#replica_affinity ⇒ Object (readonly)
Returns the value of attribute replica_affinity.
34 35 36 |
# File 'lib/redis_client/cluster_config.rb', line 34 def replica_affinity @replica_affinity end |
#slow_command_timeout ⇒ Object (readonly)
Returns the value of attribute slow_command_timeout.
34 35 36 |
# File 'lib/redis_client/cluster_config.rb', line 34 def slow_command_timeout @slow_command_timeout end |
#startup_nodes ⇒ Object (readonly)
Returns the value of attribute startup_nodes.
34 35 36 |
# File 'lib/redis_client/cluster_config.rb', line 34 def startup_nodes @startup_nodes end |
Instance Method Details
#client_config_for_node(node_key) ⇒ Object
91 92 93 94 95 |
# File 'lib/redis_client/cluster_config.rb', line 91 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 |
#inspect ⇒ Object
66 67 68 |
# File 'lib/redis_client/cluster_config.rb', line 66 def inspect "#<#{self.class.name} #{startup_nodes.values.map { |v| v.reject { |k| k == :command_builder } }}>" end |
#new_client(**kwargs) ⇒ Object
83 84 85 |
# File 'lib/redis_client/cluster_config.rb', line 83 def new_client(**kwargs) @client_implementation.new(self, concurrency: @concurrency, **kwargs) end |
#new_pool(size: 5, timeout: 5, **kwargs) ⇒ Object
74 75 76 77 78 79 80 81 |
# File 'lib/redis_client/cluster_config.rb', line 74 def new_pool(size: 5, timeout: 5, **kwargs) @client_implementation.new( self, pool: { size: size, timeout: timeout }, concurrency: @concurrency, **kwargs ) end |
#read_timeout ⇒ Object
70 71 72 |
# File 'lib/redis_client/cluster_config.rb', line 70 def read_timeout @client_config[:read_timeout] || @client_config[:timeout] || ::RedisClient::Config::DEFAULT_TIMEOUT end |
#resolved? ⇒ Boolean
97 98 99 |
# File 'lib/redis_client/cluster_config.rb', line 97 def resolved? true end |
#sentinel? ⇒ Boolean
101 102 103 |
# File 'lib/redis_client/cluster_config.rb', line 101 def sentinel? false end |
#server_url ⇒ Object
105 106 107 |
# File 'lib/redis_client/cluster_config.rb', line 105 def server_url nil end |
#use_replica? ⇒ Boolean
87 88 89 |
# File 'lib/redis_client/cluster_config.rb', line 87 def use_replica? @replica end |