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
19CommandControl Parse(const formats::json::Value& elem, formats::parse::To<CommandControl>);
20
21CommandControl::Strategy Parse(const formats::json::Value& elem, formats::parse::To<CommandControl::Strategy>);
22
23WaitConnectedMode Parse(const formats::json::Value& elem, formats::parse::To<WaitConnectedMode>);
24
25RedisWaitConnected Parse(const formats::json::Value& elem, formats::parse::To<RedisWaitConnected>);
26
27CommandsBufferingSettings Parse(const formats::json::Value& elem, formats::parse::To<CommandsBufferingSettings>);
28
30Parse(const formats::json::Value& elem, formats::parse::To<MetricsSettings::DynamicSettings>);
31
33Parse(const formats::json::Value& elem, formats::parse::To<ReplicationMonitoringSettings>);
34
35PubsubMetricsSettings Parse(const formats::json::Value& elem, formats::parse::To<PubsubMetricsSettings>);
36
37/// @brief Main config for the Valkey/Redis
38struct Config final {
39 static Config Parse(const dynamic_config::DocsMap& docs_map);
40
41 CommandControl default_command_control;
42 CommandControl subscriber_default_command_control;
43 std::chrono::seconds subscriptions_rebalance_min_interval{};
44 RedisWaitConnected redis_wait_connected;
45 CommandsBufferingSettings commands_buffering_settings;
46 MetricsSettings::DynamicSettings metrics_settings;
47 PubsubMetricsSettings pubsub_metrics_settings;
48 dynamic_config::ValueDict<ReplicationMonitoringSettings> replication_monitoring_settings;
49 dynamic_config::ValueDict<USERVER_NAMESPACE::utils::RetryBudgetSettings> retry_budget_settings;
50 /// When 'required' is not set to 'no' and 'max-failed-shards' is set to a value greater than 0 in the static
51 /// config, the service will report 500 on the Ping handler. This setting turns off this check, so the service
52 /// will ignore status of redis cluster and connection when answering on ping requests
54};
55
56extern const dynamic_config::Key<Config> kConfig;
57
58} // namespace storages::redis
59
60USERVER_NAMESPACE_END