userver: userver/storages/redis/redis_config.hpp Source File
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
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