userver: components::Redis Class Reference
No Matches
components::Redis Class Reference

#include <userver/storages/redis/component.hpp>

Detailed Description

Redis client component.

Provides access to a redis cluster.

Dynamic options:

Static options:

Name Description Default value
thread_pools.redis_thread_pool_size thread count to serve Redis requests -
thread_pools.sentinel_thread_pool_size thread count to serve sentinel requests. -
groups array of redis clusters to work with excluding subscribers -
groups.[].config_name key name in secdist with options for this cluster -
groups.[].db name to refer to the cluster in components::Redis::GetClient() -
groups.[].sharding_strategy one of RedisCluster, KeyShardCrc32, KeyShardTaximeterCrc32 or KeyShardGpsStorageDriver "KeyShardTaximeterCrc32"
groups.[].allow_reads_from_master allows read requests from master instance false
subscribe_groups array of redis clusters to work with in subscribe mode -
subscribe_groups.[].config_name key name in secdist with options for this cluster -
subscribe_groups.[].db name to refer to the cluster in components::Redis::GetSubscribeClient() -
subscribe_groups.[].sharding_strategy either RedisCluster or KeyShardTaximeterCrc32 "KeyShardTaximeterCrc32"

Static configuration example:

# yaml
- config_name: taxi-tmp
db: taxi-tmp
sharding_strategy: "RedisCluster"
- config_name: taxi-tmp-pubsub
db: taxi-tmp-pubsub
- config_name: taxi-tmp-pubsub
db: taxi-tmp-pubsub
redis_thread_pool_size: 8
sentinel_thread_pool_size: 1

Secdist format

If a config_name option is provided, for example groups.some.config_name: some_name_of_your_database, then the Secdist entry for that alias should look like following:

"redis_settings": {
"some_name_of_your_database": {
"password": "the_password_of_your_database",
"sentinels": [
{"host": "the_host1_of_your_database", "port": 11564}
"shards": [
{"name": "test_master0"}

Definition at line 113 of file component.hpp.

+ Inheritance diagram for components::Redis:
+ Collaboration diagram for components::Redis:

Public Member Functions

 Redis (const ComponentConfig &config, const ComponentContext &component_context)
std::shared_ptr< storages::redis::ClientGetClient (const std::string &name, ::redis::RedisWaitConnected wait_connected={}) const
std::shared_ptr< redis::Sentinel > Client (const std::string &name) const
std::shared_ptr< storages::redis::SubscribeClientGetSubscribeClient (const std::string &name, ::redis::RedisWaitConnected wait_connected={}) const
- Public Member Functions inherited from components::LoggableComponentBase
 LoggableComponentBase (const ComponentConfig &, const ComponentContext &)
 LoggableComponentBase (LoggableComponentBase &&)=delete
 LoggableComponentBase (const LoggableComponentBase &)=delete
 ~LoggableComponentBase () override=default
ComponentHealth GetComponentHealth () const override
void OnLoadingCancelled () override
void OnAllComponentsLoaded () override
void OnAllComponentsAreStopping () override

Static Public Member Functions

static yaml_config::Schema GetStaticConfigSchema ()
- Static Public Member Functions inherited from components::LoggableComponentBase
static yaml_config::Schema GetStaticConfigSchema ()

Static Public Attributes

static constexpr std::string_view kName = "redis"
 The default name of components::Redis.

The documentation for this class was generated from the following file: