Class: RedisClient::ClusterConfig
- Inherits:
-
Object
- Object
- RedisClient::ClusterConfig
- Defined in:
- lib/redis_client/cluster_config.rb
Constant Summary collapse
- InvalidClientConfigError =
Class.new(::RedisClient::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.
-
#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
- #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
35 36 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 |
# File 'lib/redis_client/cluster_config.rb', line 35 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 end |
Instance Attribute Details
#client_config ⇒ Object (readonly)
Returns the value of attribute client_config.
32 33 34 |
# File 'lib/redis_client/cluster_config.rb', line 32 def client_config @client_config end |
#command_builder ⇒ Object (readonly)
Returns the value of attribute command_builder.
32 33 34 |
# File 'lib/redis_client/cluster_config.rb', line 32 def command_builder @command_builder end |
#connect_with_original_config ⇒ Object (readonly)
Returns the value of attribute connect_with_original_config.
32 33 34 |
# File 'lib/redis_client/cluster_config.rb', line 32 def connect_with_original_config @connect_with_original_config end |
#max_startup_sample ⇒ Object (readonly)
Returns the value of attribute max_startup_sample.
32 33 34 |
# File 'lib/redis_client/cluster_config.rb', line 32 def max_startup_sample @max_startup_sample end |
#replica_affinity ⇒ Object (readonly)
Returns the value of attribute replica_affinity.
32 33 34 |
# File 'lib/redis_client/cluster_config.rb', line 32 def replica_affinity @replica_affinity end |
#slow_command_timeout ⇒ Object (readonly)
Returns the value of attribute slow_command_timeout.
32 33 34 |
# File 'lib/redis_client/cluster_config.rb', line 32 def slow_command_timeout @slow_command_timeout end |
#startup_nodes ⇒ Object (readonly)
Returns the value of attribute startup_nodes.
32 33 34 |
# File 'lib/redis_client/cluster_config.rb', line 32 def startup_nodes @startup_nodes end |
Instance Method Details
#client_config_for_node(node_key) ⇒ Object
89 90 91 92 93 |
# File 'lib/redis_client/cluster_config.rb', line 89 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
64 65 66 |
# File 'lib/redis_client/cluster_config.rb', line 64 def inspect "#<#{self.class.name} #{startup_nodes.values}>" end |
#new_client(**kwargs) ⇒ Object
81 82 83 |
# File 'lib/redis_client/cluster_config.rb', line 81 def new_client(**kwargs) @client_implementation.new(self, concurrency: @concurrency, **kwargs) end |
#new_pool(size: 5, timeout: 5, **kwargs) ⇒ Object
72 73 74 75 76 77 78 79 |
# File 'lib/redis_client/cluster_config.rb', line 72 def new_pool(size: 5, timeout: 5, **kwargs) @client_implementation.new( self, pool: { size: size, timeout: timeout }, concurrency: @concurrency, **kwargs ) end |
#read_timeout ⇒ Object
68 69 70 |
# File 'lib/redis_client/cluster_config.rb', line 68 def read_timeout @client_config[:read_timeout] || @client_config[:timeout] || ::RedisClient::Config::DEFAULT_TIMEOUT end |
#use_replica? ⇒ Boolean
85 86 87 |
# File 'lib/redis_client/cluster_config.rb', line 85 def use_replica? @replica end |