userver: storages::redis Namespace Reference
Loading...
Searching...
No Matches
storages::redis Namespace Reference

Detailed Description

Valkey and Redis client and helpers.

Classes

class  Client
 Valkey or Redis client. More...
class  ClientNotConnectedException
 Cannot connect to some redis server shard. More...
struct  CommandControl
 Redis command execution options. More...
struct  CommandsBufferingSettings
struct  Config
 Main config for the Valkey/Redis. More...
struct  ConnectionInfo
class  Count
 A hint for Scan, Hscan, Scan and Zscan commands. More...
struct  Credentials
 Redis node authentication credentials (ACL-aware). More...
class  DynamicRedis
 Manages dynamically created Redis clients. More...
struct  DynamicSettings
 Dynamic configuration settings for Redis clients. More...
class  EmptyTransactionException
class  EvalShaResult
 Value, returned by storages::redis::RequestEvalSha. More...
class  Exception
 Generic redis-related exception. More...
struct  ExpireOptions
class  ExpireReply
struct  GeoaddArg
struct  GeoPoint
struct  GeoradiusOptions
struct  GeosearchOptions
struct  HealthCheckParams
 Parameters for checking Redis cluster health. More...
class  HexpiretimeReply
 Parsed HEXPIRETIME reply for a single field — absolute deadline (in seconds since the epoch) or a "field is missing" / "field has no expiration" sentinel. More...
struct  HgetexOptions
 Options for HGETEX command — at most one TTL action per call. More...
class  HpexpiretimeReply
 Parsed HPEXPIRETIME reply for a single field — absolute deadline (in milliseconds since the epoch) or a "field is missing" / "field has no expiration" sentinel. More...
struct  HsetexFieldValue
 Single field/value entry for HSETEX. More...
struct  HsetexOptions
 Options for HSETEX (FNX/FXX combined with EX/PX/EXAT/PXAT/KEEPTTL). More...
class  InvalidArgumentException
 Invalid redis command argument. More...
struct  JsonKeyPathValue
 Data type for JSON.MSET command arguments (key + path + JSON value triplet). More...
class  JsonModuleException
 Redis JSON module error (e.g., WRONGTYPE, SYNTAXERR, NONEXISTENT). More...
class  KeyHasNoExpirationException
 Thrown when reading TTL for a missing or persistent key. More...
class  Match
 A command option to use in Scan, Hscan, Scan and Zscan commands. More...
struct  MemberScore
 Data type that holds member and score. More...
struct  MetricsSettings
class  NotStartedTransactionException
class  ParseConfigException
 Invalid config format. More...
class  ParseReplyException
 Invalid reply data format. More...
struct  Point
class  PttlReply
 Parsed PTTL / HPTTL reply (millisecond precision). More...
struct  PublishSettings
struct  PubsubMetricsSettings
struct  RangeOptions
struct  RangeScoreOptions
struct  RedisWaitConnected
 Connection wait options for the Redis; mostly used by storages::redis::Client::WaitConnectedOnce. More...
struct  ReplicationMonitoringSettings
class  Reply
 Redis command reply with metadata (server, status, timing). More...
class  ReplyData
 Typed view of a hiredis redisReply value. More...
class  Request
 Valkey or Redis future for a non-scan and non-eval responses. More...
class  RequestCancelledException
 Request was cancelled. More...
class  RequestDataBase
class  RequestEval
 Redis future for EVAL responses. More...
class  RequestEvalSha
 Redis future for EVALSHA responses. More...
class  RequestFailedException
 Request execution failed. More...
class  RequestGeneric
 Redis future for generic command responses. Can be used to request custom modules commands or unsupported yet commands. More...
class  RequestScanData
class  RequestScanDataBase
struct  RetryNilFromMaster
class  ScanOptionsGeneric
 A command option to use in Scan, Hscan, Scan and Zscan commands that combines Match and Count options. More...
struct  ScanReplyElem
struct  ScanReplyElem< ScanTag::kHscan >
struct  ScanReplyElem< ScanTag::kScan >
struct  ScanReplyElem< ScanTag::kSscan >
struct  ScanReplyElem< ScanTag::kZscan >
class  ScanRequest
 Redis future for a SCAN-like responses. More...
struct  ScoreOptions
class  ServerId
 Opaque Id of Redis server instance / any server instance. More...
struct  ServerIdHasher
struct  SetOptions
struct  Stat
class  SubscribeClient
 Client that allows subscribing to Redis channel messages. More...
class  SubscriptionToken
 RAII subscription guard, that is usually retrieved from storages::redis::SubscribeClient. More...
struct  To
class  Transaction
 Atomic sequence of Redis commands (https://redis.io/topics/transactions), that is usually retrieved from storages::redis::Client::Multi(). More...
class  TtlReply
 Parsed TTL / HTTL reply (seconds precision). More...
struct  ZaddOptions

Typedefs

using Password = utils::NonLoggable<class PasswordTag, std::string>
using ScanCursor = int64_t
using ClientPtr = std::shared_ptr<Client>
using SubscribeClientPtr = std::shared_ptr<SubscribeClient>
using Longitude = utils::StrongTypedef<struct LongitudeTag, double>
using Latitude = utils::StrongTypedef<struct LatitudeTag, double>
using BoxWidth = utils::StrongTypedef<struct BoxWidthTag, double>
using BoxHeight = utils::StrongTypedef<struct BoxHeightTag, double>
template<ScanTag TScanTag>
using ScanOptionsTmpl = ScanOptionsGeneric
using ScanOptions = ScanOptionsGeneric
using SscanOptions = ScanOptionsGeneric
using HscanOptions = ScanOptionsGeneric
using ZscanOptions = ScanOptionsGeneric
using ReplyPtr = std::shared_ptr<Reply>
template<typename RedisRequestType>
using HedgedRedisRequest = utils::hedging::HedgedRequestFuture<impl::RedisRequestStrategy<RedisRequestType>>
using TransactionPtr = std::unique_ptr<Transaction>
Valkey/Redis futures aliases
using RequestAppend = Request<size_t>
using RequestBitop = Request<size_t>
using RequestDbsize = Request<size_t>
using RequestDecr = Request<int64_t>
using RequestDel = Request<size_t>
using RequestUnlink = Request<size_t>
using RequestGenericCommon = Request<ReplyData>
using RequestEvalCommon = Request<ReplyData>
using RequestEvalShaCommon = Request<ReplyData>
using RequestScriptLoad = Request<std::string>
using RequestExec = Request<ReplyData, void>
using RequestExists = Request<size_t>
using RequestExpire = Request<ExpireReply>
using RequestGeoadd = Request<size_t>
using RequestGeopos = Request<std::vector<std::optional<Point>>>
using RequestGeoradius = Request<std::vector<GeoPoint>>
using RequestGeosearch = Request<std::vector<GeoPoint>>
using RequestGet = Request<std::optional<std::string>>
using RequestGetset = Request<std::optional<std::string>>
using RequestHdel = Request<size_t>
using RequestHexists = Request<size_t>
using RequestHget = Request<std::optional<std::string>>
using RequestHgetall = Request<std::unordered_map<std::string, std::string>>
using RequestHincrby = Request<int64_t>
using RequestHincrbyfloat = Request<double>
using RequestHkeys = Request<std::vector<std::string>>
using RequestHlen = Request<size_t>
using RequestHmget = Request<std::vector<std::optional<std::string>>>
using RequestHmset = Request<StatusOk, void>
using RequestHscan = ScanRequest<ScanTag::kHscan>
using RequestHset = Request<HsetReply>
using RequestHsetnx = Request<size_t, bool>
using RequestHvals = Request<std::vector<std::string>>
using RequestIncr = Request<int64_t>
using RequestKeys = Request<std::vector<std::string>>
using RequestLindex = Request<std::optional<std::string>>
using RequestLlen = Request<size_t>
using RequestLpop = Request<std::optional<std::string>>
using RequestLpush = Request<size_t>
using RequestLpushx = Request<size_t>
using RequestLrange = Request<std::vector<std::string>>
using RequestLrem = Request<size_t>
using RequestLtrim = Request<StatusOk, void>
using RequestMget = Request<std::vector<std::optional<std::string>>>
using RequestMset = Request<StatusOk, void>
using RequestPersist = Request<PersistReply>
using RequestPexpire = Request<ExpireReply>
using RequestPing = Request<StatusPong, void>
using RequestPingMessage = Request<std::string>
using RequestPublish = Request<size_t>
using RequestRename = Request<StatusOk, void>
using RequestRpop = Request<std::optional<std::string>>
using RequestRpush = Request<size_t>
using RequestRpushx = Request<size_t>
using RequestSadd = Request<size_t>
using RequestScan = ScanRequest<ScanTag::kScan>
using RequestScard = Request<size_t>
using RequestSet = Request<StatusOk, void>
using RequestSetIfExist = Request<std::optional<StatusOk>, bool>
using RequestSetIfNotExist = Request<std::optional<StatusOk>, bool>
using RequestSetIfNotExistOrGet = Request<std::optional<std::string>>
using RequestSetOptions = Request<SetReply>
using RequestSetex = Request<StatusOk, void>
using RequestSetAndGetPrevious = Request<std::optional<std::string>>
using RequestSismember = Request<size_t>
using RequestSmembers = Request<std::unordered_set<std::string>>
using RequestSrandmember = Request<std::optional<std::string>>
using RequestSrandmembers = Request<std::vector<std::string>>
using RequestSrem = Request<size_t>
using RequestSscan = ScanRequest<ScanTag::kSscan>
using RequestStrlen = Request<size_t>
using RequestTime = Request<std::chrono::system_clock::time_point>
using RequestTtl = Request<TtlReply>
using RequestType = Request<KeyType>
using RequestZadd = Request<size_t>
using RequestZaddIncr = Request<double>
using RequestZaddIncrExisting = Request<std::optional<double>>
using RequestZcard = Request<size_t>
using RequestZcount = Request<size_t>
using RequestZrange = Request<std::vector<std::string>>
using RequestZrangeWithScores = Request<std::vector<MemberScore>>
using RequestZrangebyscore = Request<std::vector<std::string>>
using RequestZrangebyscoreWithScores = Request<std::vector<MemberScore>>
using RequestZrem = Request<size_t>
using RequestZremrangebyrank = Request<size_t>
using RequestZremrangebyscore = Request<size_t>
using RequestZscan = ScanRequest<ScanTag::kZscan>
using RequestZscore = Request<std::optional<double>>
using RequestHexpire = Request<std::vector<HexpireReply>>
using RequestHexpiretime = Request<std::vector<HexpiretimeReply>>
using RequestHpexpiretime = Request<std::vector<HpexpiretimeReply>>
using RequestHttl = Request<std::vector<TtlReply>>
using RequestHpttl = Request<std::vector<PttlReply>>
using RequestHpersist = Request<std::vector<HpersistReply>>
using RequestHgetex = Request<std::vector<std::optional<std::string>>>
using RequestHsetex = Request<HsetexReply>
using RequestJsonSet = Request<StatusOk, void>
using RequestJsonSetIfExist = Request<std::optional<StatusOk>, bool>
using RequestJsonSetIfNotExist = Request<std::optional<StatusOk>, bool>
using RequestJsonGet = Request<std::optional<formats::json::Value>>
using RequestJsonMget = Request<std::vector<std::optional<formats::json::Value>>>
using RequestJsonMset = Request<StatusOk, void>

Enumerations

enum class  ConnectionSecurity {
  kNone ,
  kTLS
}
enum class  BitOperation {
  kAnd ,
  kOr ,
  kXor ,
  kNot
}
 Bitwise SET operation kind for Redis BITOP. More...
enum class  PubShard {
  kZeroShard ,
  kRoundRobin
}
enum class  KeyType {
  kNone ,
  kString ,
  kList ,
  kSet ,
  kZset ,
  kHash ,
  kStream
}
 Type of the Redis value stored by a key. More...
enum class  RedisState {
  kInit = 0 ,
  kInitError ,
  kConnected ,
  kDisconnecting ,
  kDisconnected ,
  kDisconnectError
}
 Connection lifecycle state of a Redis client instance. More...
enum class  ReplyStatus {
  kOk = 0 ,
  kInputOutputError ,
  kOtherError ,
  kEndOfFileError ,
  kProtocolError ,
  kOutOfMemoryError ,
  kTimeoutError
}
 Valkey/Redis reply status. More...
enum class  HsetReply {
  kCreated ,
  kUpdated
}
enum class  HsetexReply : std::int8_t {
  kConditionNotMet = 0 ,
  kFieldsSet = 1
}
 Result of HSETEX. More...
enum class  PersistReply {
  kKeyOrTimeoutNotFound ,
  kTimeoutRemoved
}
enum class  HexpireReply : std::int8_t {
  kFieldDoesNotExist = -2 ,
  kConditionNotMet = 0 ,
  kExpirationUpdated = 1 ,
  kFieldDeleted = 2
}
 Per-field result of HEXPIRE / HPEXPIRE / HEXPIREAT / HPEXPIREAT. More...
enum class  HpersistReply : std::int8_t {
  kFieldDoesNotExist = -2 ,
  kFieldHasNoExpiration = -1 ,
  kExpirationRemoved = 1
}
 Per-field result of HPERSIST. More...
enum class  SetReply {
  kSet ,
  kNotSet
}
enum class  StatusOk { kOk }
enum class  StatusPong { kPong }
enum class  ScanTag {
  kScan ,
  kSscan ,
  kHscan ,
  kZscan
}
 Enum that distinguished different SCAN requests for the storages::redis::ScanRequest. More...
enum class  ShardingStrategy {
  kRedisCluster ,
  kRedisStandalone ,
  kKeyShardCrc32 ,
  kKeyShardTaximeterCrc32 ,
  kKeyShardGpsStorageDriver
}
 How Redis keys are mapped to shards or cluster topology. More...
enum class  TopologyUpdateMethod {
  kClusterSlots ,
  kClusterShards
}
 How Redis Cluster topology refresh is performed. More...
enum class  WaitConnectedMode {
  kNoWait ,
  kMaster ,
  kMasterOrSlave ,
  kSlave ,
  kMasterAndSlave
}
 Connection wait mode for the Redis. More...

Functions

std::string ToString (BitOperation bitop)
std::string CreateTmpKey (const std::string &key, std::string prefix)
CommandControl::Strategy StrategyFromString (std::string_view s)
 Returns CommandControl::Strategy from string.
std::string_view StrategyToString (CommandControl::Strategy s)
 Returns string representation of CommandControl::Strategy.
constexpr ZaddOptions operator| (ZaddOptions::Exist exist, ZaddOptions::ReturnValue return_value)
constexpr ZaddOptions operator| (ZaddOptions::Exist exist, ZaddOptions::Compare compare)
constexpr ZaddOptions operator| (ZaddOptions::Compare compare, ZaddOptions::Exist exist)
constexpr ZaddOptions operator| (ZaddOptions::Compare compare, ZaddOptions::ReturnValue return_value)
constexpr ZaddOptions operator| (ZaddOptions::ReturnValue return_value, ZaddOptions::Exist exist)
constexpr ZaddOptions operator| (ZaddOptions::ReturnValue return_value, ZaddOptions::Compare compare)
template<typename RedisRequestType, typename... Args, typename M = RedisRequestType (storages::redis::Client::*)(Args..., const redis::CommandControl&)>
HedgedRedisRequest< RedisRequestType > MakeHedgedRedisRequestAsync (std::shared_ptr< storages::redis::Client > redis, M method, const redis::CommandControl &cc, utils::hedging::HedgingSettings hedging_settings, Args... args)
template<typename RedisRequestType, typename... Args, typename M = RedisRequestType (storages::redis::Client::*)(Args..., const redis::CommandControl&)>
std::optional< typename RedisRequestType::Reply > MakeHedgedRedisRequest (std::shared_ptr< storages::redis::Client > redis, M method, const redis::CommandControl &cc, utils::hedging::HedgingSettings hedging_settings, Args... args)
template<typename RedisRequestType, typename... Args, typename M = RedisRequestType (storages::redis::Client::*)(Args..., const redis::CommandControl&)>
std::vector< std::optional< typename RedisRequestType::Reply > > MakeBulkHedgedRedisRequest (std::shared_ptr< storages::redis::Client > redis, M method, const redis::CommandControl &cc, utils::hedging::HedgingSettings hedging_settings, std::vector< std::tuple< Args... > > args)
template<typename RedisRequestType, typename... Args, typename M = RedisRequestType (storages::redis::Client::*)(Args..., const redis::CommandControl&)>
utils::hedging::HedgedRequestBulkFuture< redis::impl::RedisRequestStrategy< RedisRequestType > > MakeBulkHedgedRedisRequestAsync (std::shared_ptr< storages::redis::Client > redis, M method, const redis::CommandControl &cc, utils::hedging::HedgingSettings hedging_settings, std::vector< std::tuple< Args... > > args)
KeyType ParseKeyType (std::string_view str)
std::string ToString (KeyType key_type)
std::vector< std::string > ParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< std::string > >)
std::vector< int64_t > ParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< int64_t > >)
std::vector< std::optional< std::string > > ParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< std::optional< std::string > > >)
std::vector< std::pair< std::string, std::string > > ParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< std::pair< std::string, std::string > > >)
std::vector< MemberScoreParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< MemberScore > >)
std::vector< GeoPointParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< GeoPoint > >)
std::vector< HexpireReplyParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< HexpireReply > >)
std::vector< HpersistReplyParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< HpersistReply > >)
std::vector< TtlReplyParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< TtlReply > >)
std::vector< PttlReplyParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< PttlReply > >)
std::vector< HexpiretimeReplyParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< HexpiretimeReply > >)
std::vector< HpexpiretimeReplyParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< HpexpiretimeReply > >)
std::vector< std::optional< Point > > ParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< std::optional< Point > > >)
std::string Parse (ReplyData &&reply_data, const std::string &request_description, To< std::string >)
double Parse (ReplyData &&reply_data, const std::string &request_description, To< double >)
size_t Parse (ReplyData &&reply_data, const std::string &request_description, To< size_t >)
bool Parse (ReplyData &&reply_data, const std::string &request_description, To< size_t, bool >)
int64_t Parse (ReplyData &&reply_data, const std::string &request_description, To< int64_t >)
std::chrono::system_clock::time_point Parse (ReplyData &&reply_data, const std::string &request_description, To< std::chrono::system_clock::time_point >)
HsetReply Parse (ReplyData &&reply_data, const std::string &request_description, To< HsetReply >)
HsetexReply Parse (ReplyData &&reply_data, const std::string &request_description, To< HsetexReply >)
PersistReply Parse (ReplyData &&reply_data, const std::string &request_description, To< PersistReply >)
HexpireReply Parse (ReplyData &&reply_data, const std::string &request_description, To< HexpireReply >)
HpersistReply Parse (ReplyData &&reply_data, const std::string &request_description, To< HpersistReply >)
KeyType Parse (ReplyData &&reply_data, const std::string &request_description, To< KeyType >)
void Parse (ReplyData &&reply_data, const std::string &request_description, To< StatusOk, void >)
bool Parse (ReplyData &&reply_data, const std::string &request_description, To< std::optional< StatusOk >, bool >)
void Parse (ReplyData &&reply_data, const std::string &request_description, To< StatusPong, void >)
Point Parse (ReplyData &&reply_data, const std::string &request_description, To< Point >)
SetReply Parse (ReplyData &&reply_data, const std::string &request_description, To< SetReply >)
std::unordered_set< std::string > Parse (ReplyData &&reply_data, const std::string &request_description, To< std::unordered_set< std::string > >)
std::unordered_map< std::string, std::string > Parse (ReplyData &&reply_data, const std::string &request_description, To< std::unordered_map< std::string, std::string > >)
ReplyData Parse (ReplyData &&reply_data, const std::string &request_description, To< ReplyData >)
formats::json::Value Parse (ReplyData &&reply_data, const std::string &request_description, To< formats::json::Value >)
std::vector< std::optional< formats::json::Value > > ParseReplyDataArray (ReplyData &&array_data, const std::string &request_description, To< std::vector< std::optional< formats::json::Value > > >)
template<typename Result, typename ReplyType = Result>
requires impl::HasParseFunctionFromRedisReply<Result, ReplyType>
ReplyType Parse (ReplyData &&reply_data, const std::string &request_description, To< Result, ReplyType >)
template<typename T>
std::vector< T > Parse (ReplyData &&reply_data, const std::string &request_description, To< std::vector< T > >)
template<typename T>
std::optional< T > Parse (ReplyData &&reply_data, const std::string &request_description, To< std::optional< T > >)
CommandControl Parse (const formats::json::Value &elem, formats::parse::To< CommandControl >)
CommandControl::Strategy Parse (const formats::json::Value &elem, formats::parse::To< CommandControl::Strategy >)
WaitConnectedMode Parse (const formats::json::Value &elem, formats::parse::To< WaitConnectedMode >)
RedisWaitConnected Parse (const formats::json::Value &elem, formats::parse::To< RedisWaitConnected >)
CommandsBufferingSettings Parse (const formats::json::Value &elem, formats::parse::To< CommandsBufferingSettings >)
MetricsSettings::DynamicSettings Parse (const formats::json::Value &elem, formats::parse::To< MetricsSettings::DynamicSettings >)
ReplicationMonitoringSettings Parse (const formats::json::Value &elem, formats::parse::To< ReplicationMonitoringSettings >)
PubsubMetricsSettings Parse (const formats::json::Value &elem, formats::parse::To< PubsubMetricsSettings >)
ShardingStrategy ToShardingStrategy (std::string_view view)
std::string_view ToStringView (ShardingStrategy)
TopologyUpdateMethod ToTopologyUpdateMethod (std::string_view view)
std::string_view ToStringView (TopologyUpdateMethod)
std::string ToString (WaitConnectedMode mode)
WaitConnectedMode Parse (const std::string &str, formats::parse::To< WaitConnectedMode >)

Variables

constexpr std::chrono::milliseconds kDefaultTimeoutSingle {500}
constexpr std::chrono::milliseconds kDefaultTimeoutAll {2000}
constexpr std::size_t kDefaultMaxRetries {4}
constexpr RetryNilFromMaster kRetryNilFromMaster {}
constexpr int kDeadlinePropagationExperimentVersion = 1
const dynamic_config::Key< ConfigkConfig
constexpr auto kRedisWaitConnectedDefaultTimeout = std::chrono::seconds(11)
 Default timeout for Redis connection wait.

Typedef Documentation

◆ BoxHeight

using storages::redis::BoxHeight = utils::StrongTypedef<struct BoxHeightTag, double>

Definition at line 23 of file command_options.hpp.

◆ BoxWidth

using storages::redis::BoxWidth = utils::StrongTypedef<struct BoxWidthTag, double>

Definition at line 22 of file command_options.hpp.

◆ ClientPtr

using storages::redis::ClientPtr = std::shared_ptr<Client>

Definition at line 13 of file client_fwd.hpp.

◆ HedgedRedisRequest

template<typename RedisRequestType>
using storages::redis::HedgedRedisRequest = utils::hedging::HedgedRequestFuture<impl::RedisRequestStrategy<RedisRequestType>>

Definition at line 68 of file hedged_request.hpp.

◆ HscanOptions

using storages::redis::HscanOptions = ScanOptionsGeneric

Definition at line 207 of file command_options.hpp.

◆ Latitude

using storages::redis::Latitude = utils::StrongTypedef<struct LatitudeTag, double>

Definition at line 21 of file command_options.hpp.

◆ Longitude

using storages::redis::Longitude = utils::StrongTypedef<struct LongitudeTag, double>

Definition at line 20 of file command_options.hpp.

◆ Password

using storages::redis::Password = utils::NonLoggable<class PasswordTag, std::string>

Definition at line 20 of file base.hpp.

◆ ReplyPtr

typedef std::shared_ptr< Reply > storages::redis::ReplyPtr = std::shared_ptr<Reply>

Definition at line 23 of file fwd.hpp.

◆ RequestAppend

using storages::redis::RequestAppend = Request<size_t>

Definition at line 184 of file request.hpp.

◆ RequestBitop

using storages::redis::RequestBitop = Request<size_t>

Definition at line 185 of file request.hpp.

◆ RequestDbsize

using storages::redis::RequestDbsize = Request<size_t>

Definition at line 186 of file request.hpp.

◆ RequestDecr

using storages::redis::RequestDecr = Request<int64_t>

Definition at line 187 of file request.hpp.

◆ RequestDel

using storages::redis::RequestDel = Request<size_t>

Definition at line 188 of file request.hpp.

◆ RequestEvalCommon

using storages::redis::RequestEvalCommon = Request<ReplyData>

Definition at line 191 of file request.hpp.

◆ RequestEvalShaCommon

using storages::redis::RequestEvalShaCommon = Request<ReplyData>

Definition at line 192 of file request.hpp.

◆ RequestExec

using storages::redis::RequestExec = Request<ReplyData, void>

Definition at line 194 of file request.hpp.

◆ RequestExists

using storages::redis::RequestExists = Request<size_t>

Definition at line 195 of file request.hpp.

◆ RequestExpire

using storages::redis::RequestExpire = Request<ExpireReply>

Definition at line 196 of file request.hpp.

◆ RequestGenericCommon

using storages::redis::RequestGenericCommon = Request<ReplyData>

Definition at line 190 of file request.hpp.

◆ RequestGeoadd

using storages::redis::RequestGeoadd = Request<size_t>

Definition at line 197 of file request.hpp.

◆ RequestGeopos

using storages::redis::RequestGeopos = Request<std::vector<std::optional<Point>>>

Definition at line 198 of file request.hpp.

◆ RequestGeoradius

using storages::redis::RequestGeoradius = Request<std::vector<GeoPoint>>

Definition at line 199 of file request.hpp.

◆ RequestGeosearch

using storages::redis::RequestGeosearch = Request<std::vector<GeoPoint>>

Definition at line 200 of file request.hpp.

◆ RequestGet

using storages::redis::RequestGet = Request<std::optional<std::string>>

Definition at line 201 of file request.hpp.

◆ RequestGetset

using storages::redis::RequestGetset = Request<std::optional<std::string>>

Definition at line 202 of file request.hpp.

◆ RequestHdel

using storages::redis::RequestHdel = Request<size_t>

Definition at line 203 of file request.hpp.

◆ RequestHexists

using storages::redis::RequestHexists = Request<size_t>

Definition at line 204 of file request.hpp.

◆ RequestHexpire

using storages::redis::RequestHexpire = Request<std::vector<HexpireReply>>

Definition at line 274 of file request.hpp.

◆ RequestHexpiretime

using storages::redis::RequestHexpiretime = Request<std::vector<HexpiretimeReply>>

Definition at line 275 of file request.hpp.

◆ RequestHget

using storages::redis::RequestHget = Request<std::optional<std::string>>

Definition at line 205 of file request.hpp.

◆ RequestHgetall

using storages::redis::RequestHgetall = Request<std::unordered_map<std::string, std::string>>

Definition at line 206 of file request.hpp.

◆ RequestHgetex

using storages::redis::RequestHgetex = Request<std::vector<std::optional<std::string>>>

Definition at line 280 of file request.hpp.

◆ RequestHincrby

using storages::redis::RequestHincrby = Request<int64_t>

Definition at line 207 of file request.hpp.

◆ RequestHincrbyfloat

using storages::redis::RequestHincrbyfloat = Request<double>

Definition at line 208 of file request.hpp.

◆ RequestHkeys

using storages::redis::RequestHkeys = Request<std::vector<std::string>>

Definition at line 209 of file request.hpp.

◆ RequestHlen

using storages::redis::RequestHlen = Request<size_t>

Definition at line 210 of file request.hpp.

◆ RequestHmget

using storages::redis::RequestHmget = Request<std::vector<std::optional<std::string>>>

Definition at line 211 of file request.hpp.

◆ RequestHmset

using storages::redis::RequestHmset = Request<StatusOk, void>

Definition at line 212 of file request.hpp.

◆ RequestHpersist

using storages::redis::RequestHpersist = Request<std::vector<HpersistReply>>

Definition at line 279 of file request.hpp.

◆ RequestHpexpiretime

using storages::redis::RequestHpexpiretime = Request<std::vector<HpexpiretimeReply>>

Definition at line 276 of file request.hpp.

◆ RequestHpttl

using storages::redis::RequestHpttl = Request<std::vector<PttlReply>>

Definition at line 278 of file request.hpp.

◆ RequestHscan

using storages::redis::RequestHscan = ScanRequest<ScanTag::kHscan>

Definition at line 213 of file request.hpp.

◆ RequestHset

using storages::redis::RequestHset = Request<HsetReply>

Definition at line 214 of file request.hpp.

◆ RequestHsetex

using storages::redis::RequestHsetex = Request<HsetexReply>

Definition at line 281 of file request.hpp.

◆ RequestHsetnx

using storages::redis::RequestHsetnx = Request<size_t, bool>

Definition at line 215 of file request.hpp.

◆ RequestHttl

using storages::redis::RequestHttl = Request<std::vector<TtlReply>>

Definition at line 277 of file request.hpp.

◆ RequestHvals

using storages::redis::RequestHvals = Request<std::vector<std::string>>

Definition at line 216 of file request.hpp.

◆ RequestIncr

using storages::redis::RequestIncr = Request<int64_t>

Definition at line 217 of file request.hpp.

◆ RequestJsonGet

using storages::redis::RequestJsonGet = Request<std::optional<formats::json::Value>>

Definition at line 287 of file request.hpp.

◆ RequestJsonMget

using storages::redis::RequestJsonMget = Request<std::vector<std::optional<formats::json::Value>>>

Definition at line 288 of file request.hpp.

◆ RequestJsonMset

using storages::redis::RequestJsonMset = Request<StatusOk, void>

Definition at line 289 of file request.hpp.

◆ RequestJsonSet

using storages::redis::RequestJsonSet = Request<StatusOk, void>

Definition at line 284 of file request.hpp.

◆ RequestJsonSetIfExist

using storages::redis::RequestJsonSetIfExist = Request<std::optional<StatusOk>, bool>

Definition at line 285 of file request.hpp.

◆ RequestJsonSetIfNotExist

using storages::redis::RequestJsonSetIfNotExist = Request<std::optional<StatusOk>, bool>

Definition at line 286 of file request.hpp.

◆ RequestKeys

using storages::redis::RequestKeys = Request<std::vector<std::string>>

Definition at line 218 of file request.hpp.

◆ RequestLindex

using storages::redis::RequestLindex = Request<std::optional<std::string>>

Definition at line 219 of file request.hpp.

◆ RequestLlen

using storages::redis::RequestLlen = Request<size_t>

Definition at line 220 of file request.hpp.

◆ RequestLpop

using storages::redis::RequestLpop = Request<std::optional<std::string>>

Definition at line 221 of file request.hpp.

◆ RequestLpush

using storages::redis::RequestLpush = Request<size_t>

Definition at line 222 of file request.hpp.

◆ RequestLpushx

using storages::redis::RequestLpushx = Request<size_t>

Definition at line 223 of file request.hpp.

◆ RequestLrange

using storages::redis::RequestLrange = Request<std::vector<std::string>>

Definition at line 224 of file request.hpp.

◆ RequestLrem

using storages::redis::RequestLrem = Request<size_t>

Definition at line 225 of file request.hpp.

◆ RequestLtrim

using storages::redis::RequestLtrim = Request<StatusOk, void>

Definition at line 226 of file request.hpp.

◆ RequestMget

using storages::redis::RequestMget = Request<std::vector<std::optional<std::string>>>

Definition at line 227 of file request.hpp.

◆ RequestMset

using storages::redis::RequestMset = Request<StatusOk, void>

Definition at line 228 of file request.hpp.

◆ RequestPersist

using storages::redis::RequestPersist = Request<PersistReply>

Definition at line 229 of file request.hpp.

◆ RequestPexpire

using storages::redis::RequestPexpire = Request<ExpireReply>

Definition at line 230 of file request.hpp.

◆ RequestPing

using storages::redis::RequestPing = Request<StatusPong, void>

Definition at line 231 of file request.hpp.

◆ RequestPingMessage

using storages::redis::RequestPingMessage = Request<std::string>

Definition at line 232 of file request.hpp.

◆ RequestPublish

using storages::redis::RequestPublish = Request<size_t>

Definition at line 233 of file request.hpp.

◆ RequestRename

using storages::redis::RequestRename = Request<StatusOk, void>

Definition at line 234 of file request.hpp.

◆ RequestRpop

using storages::redis::RequestRpop = Request<std::optional<std::string>>

Definition at line 235 of file request.hpp.

◆ RequestRpush

using storages::redis::RequestRpush = Request<size_t>

Definition at line 236 of file request.hpp.

◆ RequestRpushx

using storages::redis::RequestRpushx = Request<size_t>

Definition at line 237 of file request.hpp.

◆ RequestSadd

using storages::redis::RequestSadd = Request<size_t>

Definition at line 238 of file request.hpp.

◆ RequestScan

using storages::redis::RequestScan = ScanRequest<ScanTag::kScan>

Definition at line 239 of file request.hpp.

◆ RequestScard

using storages::redis::RequestScard = Request<size_t>

Definition at line 240 of file request.hpp.

◆ RequestScriptLoad

using storages::redis::RequestScriptLoad = Request<std::string>

Definition at line 193 of file request.hpp.

◆ RequestSet

using storages::redis::RequestSet = Request<StatusOk, void>

Definition at line 241 of file request.hpp.

◆ RequestSetAndGetPrevious

using storages::redis::RequestSetAndGetPrevious = Request<std::optional<std::string>>

Definition at line 247 of file request.hpp.

◆ RequestSetex

using storages::redis::RequestSetex = Request<StatusOk, void>

Definition at line 246 of file request.hpp.

◆ RequestSetIfExist

using storages::redis::RequestSetIfExist = Request<std::optional<StatusOk>, bool>

Definition at line 242 of file request.hpp.

◆ RequestSetIfNotExist

using storages::redis::RequestSetIfNotExist = Request<std::optional<StatusOk>, bool>

Definition at line 243 of file request.hpp.

◆ RequestSetIfNotExistOrGet

using storages::redis::RequestSetIfNotExistOrGet = Request<std::optional<std::string>>

Definition at line 244 of file request.hpp.

◆ RequestSetOptions

using storages::redis::RequestSetOptions = Request<SetReply>

Definition at line 245 of file request.hpp.

◆ RequestSismember

using storages::redis::RequestSismember = Request<size_t>

Definition at line 248 of file request.hpp.

◆ RequestSmembers

using storages::redis::RequestSmembers = Request<std::unordered_set<std::string>>

Definition at line 249 of file request.hpp.

◆ RequestSrandmember

using storages::redis::RequestSrandmember = Request<std::optional<std::string>>

Definition at line 250 of file request.hpp.

◆ RequestSrandmembers

using storages::redis::RequestSrandmembers = Request<std::vector<std::string>>

Definition at line 251 of file request.hpp.

◆ RequestSrem

using storages::redis::RequestSrem = Request<size_t>

Definition at line 252 of file request.hpp.

◆ RequestSscan

using storages::redis::RequestSscan = ScanRequest<ScanTag::kSscan>

Definition at line 253 of file request.hpp.

◆ RequestStrlen

using storages::redis::RequestStrlen = Request<size_t>

Definition at line 254 of file request.hpp.

◆ RequestTime

using storages::redis::RequestTime = Request<std::chrono::system_clock::time_point>

Definition at line 255 of file request.hpp.

◆ RequestTtl

using storages::redis::RequestTtl = Request<TtlReply>

Definition at line 256 of file request.hpp.

◆ RequestType

using storages::redis::RequestType = Request<KeyType>

Definition at line 257 of file request.hpp.

◆ RequestUnlink

using storages::redis::RequestUnlink = Request<size_t>

Definition at line 189 of file request.hpp.

◆ RequestZadd

using storages::redis::RequestZadd = Request<size_t>

Definition at line 258 of file request.hpp.

◆ RequestZaddIncr

using storages::redis::RequestZaddIncr = Request<double>

Definition at line 259 of file request.hpp.

◆ RequestZaddIncrExisting

using storages::redis::RequestZaddIncrExisting = Request<std::optional<double>>

Definition at line 260 of file request.hpp.

◆ RequestZcard

using storages::redis::RequestZcard = Request<size_t>

Definition at line 261 of file request.hpp.

◆ RequestZcount

using storages::redis::RequestZcount = Request<size_t>

Definition at line 262 of file request.hpp.

◆ RequestZrange

using storages::redis::RequestZrange = Request<std::vector<std::string>>

Definition at line 263 of file request.hpp.

◆ RequestZrangebyscore

using storages::redis::RequestZrangebyscore = Request<std::vector<std::string>>

Definition at line 265 of file request.hpp.

◆ RequestZrangebyscoreWithScores

using storages::redis::RequestZrangebyscoreWithScores = Request<std::vector<MemberScore>>

Definition at line 266 of file request.hpp.

◆ RequestZrangeWithScores

using storages::redis::RequestZrangeWithScores = Request<std::vector<MemberScore>>

Definition at line 264 of file request.hpp.

◆ RequestZrem

using storages::redis::RequestZrem = Request<size_t>

Definition at line 267 of file request.hpp.

◆ RequestZremrangebyrank

using storages::redis::RequestZremrangebyrank = Request<size_t>

Definition at line 268 of file request.hpp.

◆ RequestZremrangebyscore

using storages::redis::RequestZremrangebyscore = Request<size_t>

Definition at line 269 of file request.hpp.

◆ RequestZscan

using storages::redis::RequestZscan = ScanRequest<ScanTag::kZscan>

Definition at line 270 of file request.hpp.

◆ RequestZscore

using storages::redis::RequestZscore = Request<std::optional<double>>

Definition at line 271 of file request.hpp.

◆ ScanCursor

using storages::redis::ScanCursor = int64_t

Definition at line 68 of file base.hpp.

◆ ScanOptions

using storages::redis::ScanOptions = ScanOptionsGeneric

Definition at line 205 of file command_options.hpp.

◆ SscanOptions

using storages::redis::SscanOptions = ScanOptionsGeneric

Definition at line 206 of file command_options.hpp.

◆ SubscribeClientPtr

using storages::redis::SubscribeClientPtr = std::shared_ptr<SubscribeClient>

Definition at line 16 of file client_fwd.hpp.

◆ TransactionPtr

using storages::redis::TransactionPtr = std::unique_ptr<Transaction>

Definition at line 419 of file transaction.hpp.

◆ ZscanOptions

using storages::redis::ZscanOptions = ScanOptionsGeneric

Definition at line 208 of file command_options.hpp.

Enumeration Type Documentation

◆ BitOperation

enum class storages::redis::BitOperation
strong

Bitwise SET operation kind for Redis BITOP.

Definition at line 13 of file bit_operation.hpp.

◆ ConnectionSecurity

enum class storages::redis::ConnectionSecurity
strong

Definition at line 32 of file base.hpp.

◆ HexpireReply

enum class storages::redis::HexpireReply : std::int8_t
strong

Per-field result of HEXPIRE / HPEXPIRE / HEXPIREAT / HPEXPIREAT.

Enumerator
kConditionNotMet 

NX/XX/GT/LT predicate failed.

kExpirationUpdated 

TTL applied.

kFieldDeleted 

ttl <= 0 / already in the past — field removed

Definition at line 84 of file reply_types.hpp.

◆ HpersistReply

enum class storages::redis::HpersistReply : std::int8_t
strong

Per-field result of HPERSIST.

Definition at line 92 of file reply_types.hpp.

◆ HsetexReply

enum class storages::redis::HsetexReply : std::int8_t
strong

Result of HSETEX.

Enumerator
kConditionNotMet 

FNX/FXX condition failed; no fields written.

kFieldsSet 

Fields written.

Definition at line 24 of file reply_types.hpp.

◆ HsetReply

enum class storages::redis::HsetReply
strong

Definition at line 21 of file reply_types.hpp.

◆ KeyType

enum class storages::redis::KeyType
strong

Type of the Redis value stored by a key.

Returned by storages::redis::Client and storages::redis::Transaction from membed function Type()

Definition at line 16 of file key_type.hpp.

◆ PersistReply

enum class storages::redis::PersistReply
strong

Definition at line 81 of file reply_types.hpp.

◆ PubShard

enum class storages::redis::PubShard
strong

Definition at line 26 of file client.hpp.

◆ RedisState

enum class storages::redis::RedisState
strong

Connection lifecycle state of a Redis client instance.

Enumerator
kInit 

Initializing context and establishing connection.

kInitError 

Connection initialization failed.

kConnected 

Connection established and ready to send commands.

kDisconnecting 

Closing connection, all remaining commands are dropped.

kDisconnected 

Connection successfully closed.

kDisconnectError 

An error occurred while closing connection.

Definition at line 11 of file redis_state.hpp.

◆ ReplyStatus

enum class storages::redis::ReplyStatus
strong

Valkey/Redis reply status.

Definition at line 11 of file reply_status.hpp.

◆ ScanTag

enum class storages::redis::ScanTag
strong

Enum that distinguished different SCAN requests for the storages::redis::ScanRequest.

Enumerator
kScan 

SCAN Redis command: iterates the set of keys in the currently selected Redis database.

kSscan 

SSCAN Redis command: iterates elements of Sets types.

kHscan 

HSCAN Redis command: iterates fields of Hash types and their associated values.

kZscan 

ZSCAN Redis command: iterates elements of Sorted Set types and their associated scores.

Definition at line 11 of file scan_tag.hpp.

◆ SetReply

enum class storages::redis::SetReply
strong

Definition at line 121 of file reply_types.hpp.

◆ ShardingStrategy

How Redis keys are mapped to shards or cluster topology.

Definition at line 13 of file sharding_strategies.hpp.

◆ StatusOk

enum class storages::redis::StatusOk
strong

Definition at line 123 of file reply_types.hpp.

◆ StatusPong

enum class storages::redis::StatusPong
strong

Definition at line 125 of file reply_types.hpp.

◆ TopologyUpdateMethod

How Redis Cluster topology refresh is performed.

Definition at line 13 of file topology_update_method.hpp.

◆ WaitConnectedMode

Connection wait mode for the Redis.

Enumerator
kNoWait 

Do not wait.

kMaster 

If we need to write to redis.

kMasterOrSlave 

Enough for reading data from redis.

kSlave 

It may be no slaves on unstable. Waiting can always fail.

kMasterAndSlave 

It may be no slaves on unstable.

Definition at line 20 of file wait_connected_mode.hpp.

Function Documentation

◆ MakeBulkHedgedRedisRequest()

template<typename RedisRequestType, typename... Args, typename M = RedisRequestType (storages::redis::Client::*)(Args..., const redis::CommandControl&)>
std::vector< std::optional< typename RedisRequestType::Reply > > storages::redis::MakeBulkHedgedRedisRequest ( std::shared_ptr< storages::redis::Client > redis,
M method,
const redis::CommandControl & cc,
utils::hedging::HedgingSettings hedging_settings,
std::vector< std::tuple< Args... > > args )

Same as MakeHedgedRedisRequest but accepting a vector of argument tuples instead of a single set of arguments. And return vector of replies corresponding to input args.

< We do retries ourselves

Definition at line 128 of file hedged_request.hpp.

◆ MakeBulkHedgedRedisRequestAsync()

template<typename RedisRequestType, typename... Args, typename M = RedisRequestType (storages::redis::Client::*)(Args..., const redis::CommandControl&)>
utils::hedging::HedgedRequestBulkFuture< redis::impl::RedisRequestStrategy< RedisRequestType > > storages::redis::MakeBulkHedgedRedisRequestAsync ( std::shared_ptr< storages::redis::Client > redis,
M method,
const redis::CommandControl & cc,
utils::hedging::HedgingSettings hedging_settings,
std::vector< std::tuple< Args... > > args )

Same as MakeHedgedRedisRequestAsync but accepting a vector of argument tuples instead of a single set of arguments. And return vector of replies corresponding to input args.

< We do retries ourselves

Definition at line 163 of file hedged_request.hpp.

◆ MakeHedgedRedisRequest()

template<typename RedisRequestType, typename... Args, typename M = RedisRequestType (storages::redis::Client::*)(Args..., const redis::CommandControl&)>
std::optional< typename RedisRequestType::Reply > storages::redis::MakeHedgedRedisRequest ( std::shared_ptr< storages::redis::Client > redis,
M method,
const redis::CommandControl & cc,
utils::hedging::HedgingSettings hedging_settings,
Args... args )

< We do retries ourselves

Definition at line 101 of file hedged_request.hpp.

◆ MakeHedgedRedisRequestAsync()

template<typename RedisRequestType, typename... Args, typename M = RedisRequestType (storages::redis::Client::*)(Args..., const redis::CommandControl&)>
HedgedRedisRequest< RedisRequestType > storages::redis::MakeHedgedRedisRequestAsync ( std::shared_ptr< storages::redis::Client > redis,
M method,
const redis::CommandControl & cc,
utils::hedging::HedgingSettings hedging_settings,
Args... args )

< We do retries ourselves

Definition at line 74 of file hedged_request.hpp.

◆ operator|() [1/6]

ZaddOptions storages::redis::operator| ( ZaddOptions::Compare compare,
ZaddOptions::Exist exist )
constexpr

Definition at line 116 of file command_options.hpp.

◆ operator|() [2/6]

ZaddOptions storages::redis::operator| ( ZaddOptions::Compare compare,
ZaddOptions::ReturnValue return_value )
constexpr

Definition at line 117 of file command_options.hpp.

◆ operator|() [3/6]

ZaddOptions storages::redis::operator| ( ZaddOptions::Exist exist,
ZaddOptions::Compare compare )
constexpr

Definition at line 115 of file command_options.hpp.

◆ operator|() [4/6]

ZaddOptions storages::redis::operator| ( ZaddOptions::Exist exist,
ZaddOptions::ReturnValue return_value )
constexpr

Definition at line 112 of file command_options.hpp.

◆ operator|() [5/6]

ZaddOptions storages::redis::operator| ( ZaddOptions::ReturnValue return_value,
ZaddOptions::Compare compare )
constexpr

Definition at line 123 of file command_options.hpp.

◆ operator|() [6/6]

ZaddOptions storages::redis::operator| ( ZaddOptions::ReturnValue return_value,
ZaddOptions::Exist exist )
constexpr

Definition at line 120 of file command_options.hpp.

◆ Parse() [1/3]

template<typename Result, typename ReplyType = Result>
requires impl::HasParseFunctionFromRedisReply<Result, ReplyType>
ReplyType storages::redis::Parse ( ReplyData && reply_data,
const std::string & request_description,
To< Result, ReplyType >  )

Definition at line 142 of file parse_reply.hpp.

◆ Parse() [2/3]

template<typename T>
std::optional< T > storages::redis::Parse ( ReplyData && reply_data,
const std::string & request_description,
To< std::optional< T > >  )

Definition at line 153 of file parse_reply.hpp.

◆ Parse() [3/3]

template<typename T>
std::vector< T > storages::redis::Parse ( ReplyData && reply_data,
const std::string & request_description,
To< std::vector< T > >  )

Definition at line 147 of file parse_reply.hpp.

Variable Documentation

◆ kDeadlinePropagationExperimentVersion

int storages::redis::kDeadlinePropagationExperimentVersion = 1
inlineconstexpr

Definition at line 19 of file redis_config.hpp.

◆ kDefaultMaxRetries

std::size_t storages::redis::kDefaultMaxRetries {4}
inlineconstexpr

Definition at line 25 of file command_control.hpp.

◆ kDefaultTimeoutAll

std::chrono::milliseconds storages::redis::kDefaultTimeoutAll {2000}
inlineconstexpr

Definition at line 24 of file command_control.hpp.

◆ kDefaultTimeoutSingle

std::chrono::milliseconds storages::redis::kDefaultTimeoutSingle {500}
inlineconstexpr

Definition at line 23 of file command_control.hpp.

◆ kRedisWaitConnectedDefaultTimeout

auto storages::redis::kRedisWaitConnectedDefaultTimeout = std::chrono::seconds(11)
inlineconstexpr

Default timeout for Redis connection wait.

Definition at line 17 of file wait_connected_mode.hpp.

◆ kRetryNilFromMaster

RetryNilFromMaster storages::redis::kRetryNilFromMaster {}
inlineconstexpr

Can be used as an additional parameter in some commands to force retries to master if slave returned a nil reply.

Definition at line 66 of file command_control.hpp.