userver: userver/storages/redis/redis_config.hpp Source File
Loading...
Searching...
No Matches
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
23CommandControl::Strategy Parse(const formats::json::Value& elem, formats::parse::To<CommandControl::Strategy>);
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
29CommandsBufferingSettings Parse(const formats::json::Value& elem, formats::parse::To<CommandsBufferingSettings>);
30
32Parse(const formats::json::Value& elem, formats::parse::To<MetricsSettings::DynamicSettings>);
33
35Parse(const formats::json::Value& elem, formats::parse::To<ReplicationMonitoringSettings>);
36
37PubsubMetricsSettings Parse(const formats::json::Value& elem, formats::parse::To<PubsubMetricsSettings>);
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 /// When 'required' is not set to 'no' and 'max-failed-shards' is set to a value greater than 0 in the static
53 /// config, the service will report 500 on the Ping handler. This setting turns off this check, so the service
54 /// will ignore status of redis cluster and connection when answering on ping requests
56};
57
58extern const dynamic_config::Key<Config> kConfig;
59
60} // namespace storages::redis
61
62USERVER_NAMESPACE_END