userver: userver/storages/redis/redis_config.hpp Source File
Loading...
Searching...
No Matches
redis_config.hpp
1#pragma once
2
3#include <chrono>
4
5#include <userver/dynamic_config/snapshot.hpp>
6#include <userver/dynamic_config/value.hpp>
7#include <userver/formats/parse/to.hpp>
8#include <userver/storages/redis/base.hpp>
9#include <userver/storages/redis/wait_connected_mode.hpp>
10#include <userver/utils/retry_budget.hpp>
11
12USERVER_NAMESPACE_BEGIN
13
14namespace storages::redis {
15
16CommandControl Parse(const formats::json::Value& elem, formats::parse::To<CommandControl>);
17
19
20WaitConnectedMode Parse(const formats::json::Value& elem, formats::parse::To<WaitConnectedMode>);
21
22RedisWaitConnected Parse(const formats::json::Value& elem, formats::parse::To<RedisWaitConnected>);
23
25
27Parse(const formats::json::Value& elem, formats::parse::To<MetricsSettings::DynamicSettings>);
28
30Parse(const formats::json::Value& elem, formats::parse::To<ReplicationMonitoringSettings>);
31
33
34struct Config final {
35 static Config Parse(const dynamic_config::DocsMap& docs_map);
36
37 CommandControl default_command_control;
38 CommandControl subscriber_default_command_control;
39 std::chrono::seconds subscriptions_rebalance_min_interval{};
40 RedisWaitConnected redis_wait_connected;
41 CommandsBufferingSettings commands_buffering_settings;
42 MetricsSettings::DynamicSettings metrics_settings;
43 PubsubMetricsSettings pubsub_metrics_settings;
44 dynamic_config::ValueDict<ReplicationMonitoringSettings> replication_monitoring_settings;
45 dynamic_config::ValueDict<USERVER_NAMESPACE::utils::RetryBudgetSettings> retry_budget_settings;
46};
47
48extern const dynamic_config::Key<Config> kConfig;
49
50} // namespace storages::redis
51
52USERVER_NAMESPACE_END