userver: userver/storages/redis/redis_config.hpp Source File
Loading...
Searching...
No Matches
redis_config.hpp
1#pragma once
2
3#include <userver/dynamic_config/value.hpp>
4#include <userver/formats/parse/to.hpp>
5#include <userver/storages/redis/impl/base.hpp>
6#include <userver/storages/redis/impl/wait_connected_mode.hpp>
7
8USERVER_NAMESPACE_BEGIN
9
10namespace redis {
11CommandControl Parse(const formats::json::Value& elem,
12 formats::parse::To<CommandControl>);
13
14CommandControl::Strategy Parse(const formats::json::Value& elem,
15 formats::parse::To<CommandControl::Strategy>);
16
17WaitConnectedMode Parse(const formats::json::Value& elem,
18 formats::parse::To<WaitConnectedMode>);
19
20RedisWaitConnected Parse(const formats::json::Value& elem,
21 formats::parse::To<RedisWaitConnected>);
22
23CommandsBufferingSettings Parse(const formats::json::Value& elem,
25
26MetricsSettings Parse(const formats::json::Value& elem,
27 formats::parse::To<MetricsSettings>);
28
30 const formats::json::Value& elem,
32
33PubsubMetricsSettings Parse(const formats::json::Value& elem,
34 formats::parse::To<PubsubMetricsSettings>);
35} // namespace redis
36
37namespace storages::redis {
38
39class Config {
40 public:
41 dynamic_config::Value<USERVER_NAMESPACE::redis::CommandControl>
42 default_command_control;
43 dynamic_config::Value<USERVER_NAMESPACE::redis::CommandControl>
44 subscriber_default_command_control;
45 dynamic_config::Value<size_t> subscriptions_rebalance_min_interval_seconds;
46 dynamic_config::Value<USERVER_NAMESPACE::redis::RedisWaitConnected>
47 redis_wait_connected;
48 dynamic_config::Value<USERVER_NAMESPACE::redis::CommandsBufferingSettings>
49 commands_buffering_settings;
50 dynamic_config::Value<USERVER_NAMESPACE::redis::MetricsSettings>
51 metrics_settings;
52 dynamic_config::Value<USERVER_NAMESPACE::redis::PubsubMetricsSettings>
53 pubsub_metrics_settings;
54 dynamic_config::ValueDict<
55 USERVER_NAMESPACE::redis::ReplicationMonitoringSettings>
56 replication_monitoring_settings;
57 dynamic_config::Value<bool> redis_cluster_autotopology_enabled;
58
59 Config(const dynamic_config::DocsMap& docs_map)
60 : default_command_control{"REDIS_DEFAULT_COMMAND_CONTROL", docs_map},
61 subscriber_default_command_control{
62 "REDIS_SUBSCRIBER_DEFAULT_COMMAND_CONTROL", docs_map},
63 subscriptions_rebalance_min_interval_seconds{
64 "REDIS_SUBSCRIPTIONS_REBALANCE_MIN_INTERVAL_SECONDS", docs_map},
65 redis_wait_connected{"REDIS_WAIT_CONNECTED", docs_map},
66 commands_buffering_settings{"REDIS_COMMANDS_BUFFERING_SETTINGS",
67 docs_map},
68 metrics_settings{"REDIS_METRICS_SETTINGS", docs_map},
69 pubsub_metrics_settings{"REDIS_PUBSUB_METRICS_SETTINGS", docs_map},
70 replication_monitoring_settings{"REDIS_REPLICA_MONITORING_SETTINGS",
71 docs_map},
72 redis_cluster_autotopology_enabled{
73 "REDIS_CLUSTER_AUTOTOPOLOGY_ENABLED_V2", docs_map} {}
74};
75
76} // namespace storages::redis
77
78USERVER_NAMESPACE_END