userver: userver/storages/redis/redis_config.hpp Source File
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
redis_config.hpp
Go to the documentation of this file.
1#pragma once
2
3/// @file
4/// @brief @copybrief storages::redis::Config
5
6#include <chrono>
7
8#include <userver/dynamic_config/snapshot.hpp>
9#include <userver/dynamic_config/value.hpp>
10#include <userver/formats/parse/to.hpp>
11#include <userver/storages/redis/base.hpp>
12#include <userver/storages/redis/wait_connected_mode.hpp>
13#include <userver/utils/retry_budget.hpp>
14
15USERVER_NAMESPACE_BEGIN
16
17namespace storages::redis {
18
19inline constexpr int kDeadlinePropagationExperimentVersion = 1;
20
21CommandControl Parse(const formats::json::Value& elem, formats::parse::To<CommandControl>);
22
24
25WaitConnectedMode Parse(const formats::json::Value& elem, formats::parse::To<WaitConnectedMode>);
26
27RedisWaitConnected Parse(const formats::json::Value& elem, formats::parse::To<RedisWaitConnected>);
28
30
32Parse(const formats::json::Value& elem, formats::parse::To<MetricsSettings::DynamicSettings>);
33
35Parse(const formats::json::Value& elem, formats::parse::To<ReplicationMonitoringSettings>);
36
38
39/// @brief Main config for the Valkey/Redis
40struct Config final {
41 static Config Parse(const dynamic_config::DocsMap& docs_map);
42
43 CommandControl default_command_control;
44 CommandControl subscriber_default_command_control;
45 std::chrono::seconds subscriptions_rebalance_min_interval{};
46 RedisWaitConnected redis_wait_connected;
47 CommandsBufferingSettings commands_buffering_settings;
48 MetricsSettings::DynamicSettings metrics_settings;
49 PubsubMetricsSettings pubsub_metrics_settings;
50 dynamic_config::ValueDict<ReplicationMonitoringSettings> replication_monitoring_settings;
51 dynamic_config::ValueDict<USERVER_NAMESPACE::utils::RetryBudgetSettings> retry_budget_settings;
52};
53
54extern const dynamic_config::Key<Config> kConfig;
55
56} // namespace storages::redis
57
58USERVER_NAMESPACE_END