Your opinion will help to improve our service
Leave a feedback >#include <userver/storages/redis/command_control.hpp>
Redis command execution options.
Definition at line 76 of file command_control.hpp.
Public Types | |
enum class | Strategy { kDefault , kEveryDc , kLocalDcConductor , kNearestServerPing } |
Public Member Functions | |
constexpr | CommandControl (const std::optional< std::chrono::milliseconds > &timeout_single, const std::optional< std::chrono::milliseconds > &timeout_all, const std::optional< size_t > &max_retries) noexcept |
auto | operator<=> (const CommandControl &) const =default |
CommandControl | MergeWith (const CommandControl &b) const |
CommandControl | MergeWith (const testsuite::RedisControl &) const |
CommandControl | MergeWith (RetryNilFromMaster) const |
std::string | ToString () const |
Public Attributes | |
std::optional< std::chrono::milliseconds > | timeout_single |
Timeout for a single attempt to execute command. | |
std::optional< std::chrono::milliseconds > | timeout_all |
Command execution timeout, including retries. | |
std::optional< std::size_t > | max_retries |
The maximum number of retries while executing command. | |
std::optional< Strategy > | strategy {} |
Server instance selection strategy. | |
std::optional< std::size_t > | best_dc_count {} |
How many nearest DCs to use. | |
std::optional< bool > | force_request_to_master {} |
Force execution on master node. | |
std::optional< bool > | consider_ping {} |
std::optional< std::chrono::milliseconds > | max_ping_latency {} |
Server latency limit. | |
std::optional< bool > | allow_reads_from_master {} |
std::optional< bool > | account_in_statistics {} |
Controls if the command execution accounted in statistics. | |
std::optional< std::size_t > | force_shard_idx {} |
If set, force execution on specific shard. | |
std::optional< std::size_t > | chunk_size {} |
Split execution of multi-key commands (i.e., MGET) to multiple requests. | |
std::optional< ServerId > | force_server_id {} |
bool | force_retries_to_master_on_nil_reply {false} |
If set, command retries are directed to the master instance. | |
size_t | retry_counter {0} |
|
strong |
Definition at line 77 of file command_control.hpp.
|
inlineconstexprnoexcept |
Definition at line 143 of file command_control.hpp.
std::optional<bool> storages::redis::CommandControl::account_in_statistics {} |
Controls if the command execution accounted in statistics.
Definition at line 121 of file command_control.hpp.
std::optional<bool> storages::redis::CommandControl::allow_reads_from_master {} |
Allow execution of readonly commands on master node along with replica nodes to facilitate load distribution
Definition at line 118 of file command_control.hpp.
std::optional<std::size_t> storages::redis::CommandControl::best_dc_count {} |
How many nearest DCs to use.
Definition at line 104 of file command_control.hpp.
std::optional<std::size_t> storages::redis::CommandControl::chunk_size {} |
Split execution of multi-key commands (i.e., MGET) to multiple requests.
Definition at line 127 of file command_control.hpp.
std::optional<bool> storages::redis::CommandControl::consider_ping {} |
Consider ping to nodes in instance selection (true if not specified). Setting to false makes the load on the database evenly distributed, but may increase timings
Definition at line 111 of file command_control.hpp.
std::optional<bool> storages::redis::CommandControl::force_request_to_master {} |
Force execution on master node.
Definition at line 107 of file command_control.hpp.
bool storages::redis::CommandControl::force_retries_to_master_on_nil_reply {false} |
If set, command retries are directed to the master instance.
Definition at line 135 of file command_control.hpp.
std::optional<ServerId> storages::redis::CommandControl::force_server_id {} |
If set, the user wants a specific Redis instance to handle the command. Sentinel may not redirect the command to other instances. strategy is ignored.
Definition at line 132 of file command_control.hpp.
std::optional<std::size_t> storages::redis::CommandControl::force_shard_idx {} |
If set, force execution on specific shard.
Definition at line 124 of file command_control.hpp.
std::optional<std::chrono::milliseconds> storages::redis::CommandControl::max_ping_latency {} |
Server latency limit.
Definition at line 114 of file command_control.hpp.
std::optional<std::size_t> storages::redis::CommandControl::max_retries |
The maximum number of retries while executing command.
Definition at line 98 of file command_control.hpp.
size_t storages::redis::CommandControl::retry_counter {0} |
Need to be set to if you do manual retries and want retry budget to work. If set value other than 0 then request treated as retry. 0 - original request, 1 - first retry, 2 - second and so on
Definition at line 140 of file command_control.hpp.
std::optional<Strategy> storages::redis::CommandControl::strategy {} |
Server instance selection strategy.
Definition at line 101 of file command_control.hpp.
std::optional<std::chrono::milliseconds> storages::redis::CommandControl::timeout_all |
Command execution timeout, including retries.
Definition at line 95 of file command_control.hpp.
std::optional<std::chrono::milliseconds> storages::redis::CommandControl::timeout_single |
Timeout for a single attempt to execute command.
Definition at line 92 of file command_control.hpp.