relay/Relay.php (511 lines of code) (raw):
<?php
namespace Relay;
/**
* Relay client.
*/
class Relay
{
/**
* Relay's version.
*
* @var string
*/
public const VERSION = "0.12.0";
/**
* Relay's version.
*
* @var string
*/
public const Version = "0.12.0";
/**
* Integer representing no compression algorithm.
*
* @var int
*/
public const COMPRESSION_NONE = 0;
/**
* Integer representing the LZF compression algorithm.
*
* @var int
*/
public const COMPRESSION_LZF = 1;
/**
* Integer representing the Zstandard compression algorithm.
*
* @var int
*/
public const COMPRESSION_ZSTD = 2;
/**
* Integer representing the LZ4 compression algorithm.
*
* @var int
*/
public const COMPRESSION_LZ4 = 3;
/**
* Integer representing no serializer.
*
* @var int
*/
public const SERIALIZER_NONE = 0;
/**
* Integer representing the PHP serializer.
*
* @var int
*/
public const SERIALIZER_PHP = 1;
/**
* Integer representing the igbinary serializer.
*
* @var int
*/
public const SERIALIZER_IGBINARY = 2;
/**
* Integer representing the MessagePack serializer.
*
* @var int
*/
public const SERIALIZER_MSGPACK = 3;
/**
* Integer representing the JSON serializer.
*
* @var int
*/
public const SERIALIZER_JSON = 4;
/**
* Integer representing the atomic mode.
*
* @see Relay::getMode()
* @var int
*/
public const ATOMIC = 0x00;
/**
* Integer representing the pipeline mode.
*
* @see Relay::getMode()
* @var int
*/
public const PIPELINE = 0x02;
/**
* Integer representing the `MULTI` mode.
*
* @see Relay::getMode()
* @var int
*/
public const MULTI = 0x01;
/**
* Integer representing we're SUBSCRIBED. Note that this constant can
* only really be accessed when `true` is passed to `getMask()` telling
* relay to return the complete bitmasked mode.
*
* @see Relay::getMode()
* @var int
**/
public const SUBSCRIBED = 0x04;
/**
* Integer representing the prefix option.
*
* @var int
*/
public const OPT_PREFIX = 2;
/**
* Integer representing the read timeout option.
*
* @var int
*/
public const OPT_READ_TIMEOUT = 3;
/**
* Integer representing the maximum retries option.
*
* @var int
*/
public const OPT_MAX_RETRIES = 11;
/**
* Integer representing the backoff algorithm.
*
* @var int
*/
public const OPT_BACKOFF_ALGORITHM = 12;
/**
* Toggle TCP_KEEPALIVE on a connection.
*
* @var int
*/
public const OPT_TCP_KEEPALIVE = 6;
/**
* Integer representing the default backoff algorithm.
*
* @var int
*/
public const BACKOFF_ALGORITHM_DEFAULT = 0;
/**
* Integer representing the decorrelated jitter backoff algorithm.
*
* @var int
*/
public const BACKOFF_ALGORITHM_DECORRELATED_JITTER = 1;
/**
* Integer representing the full jitter backoff algorithm.
*
* @var int
*/
public const BACKOFF_ALGORITHM_FULL_JITTER = 2;
/**
* Integer representing the base for backoff computation.
*
* @var int
*/
public const OPT_BACKOFF_BASE = 13;
/**
* Integer representing the backoff time cap.
*
* @var int
*/
public const OPT_BACKOFF_CAP = 14;
/**
* Integer representing the PhpRedis compatibility mode option.
*
* Enabled by default. Disabling will cause Relay to:
* 1. Return `null` when a key doesn't exist, instead of `false`
* 2. Throw exceptions when an error occurs, instead of returning `false`
*
* @var int
*/
public const OPT_PHPREDIS_COMPATIBILITY = 100;
/**
* Integer representing the serializer option.
*
* @var int
*/
public const OPT_SERIALIZER = 1;
/**
* Integer representing the compression option.
*
* @var int
*/
public const OPT_COMPRESSION = 7;
/**
* Integer representing the compression level option.
*
* @var int
*/
public const OPT_COMPRESSION_LEVEL = 9;
/**
* Integer representing the reply literal option.
*
* @var int
*/
public const OPT_REPLY_LITERAL = 8;
/**
* Integer representing the null-multi-bulk-as-null option.
*
* @var int
*/
public const OPT_NULL_MULTIBULK_AS_NULL = 10;
/**
* @var int
*
* When enabled, this option tells Relay to ignore purely numeric values
* when packing and unpacking data. This does not include numeric strings.
* If you want numeric strings to be ignored, typecast them to an int or float.
*
* The primary purpose of this option is to make it more ergonomic when
* setting keys that will later be incremented or decremented.
*
* Note: This option incurs a small performance penalty when reading data
* because we have to see if the data is a string representation of an int
* or float.
*
* @example
* $redis->setOption(Relay::OPT_SERIALIZER, Relay::SERIALIZER_IGBINARY);
* $redis->setOption(Relay::OPT_PACK_IGNORE_NUMBERS, true);
*
* $redis->set('answer', 32);
*
* var_dump($redis->incrBy('answer', 10)); // int(42)
* var_dump($redis->get('answer')); // int(42)
*/
public const OPT_PACK_IGNORE_NUMBERS = 15;
/**
* Integer representing the throw-on-error option.
*
* Disabled by default. When enabled, Relay will throw exceptions when errors occur.
*
* @var int
*/
public const OPT_THROW_ON_ERROR = 106;
/**
* Integer representing Relay’s invalidation option.
*
* Enabled by default. When disabled will prevent Relay from
* performing instantaneous client-side invalidation when a key
* is changed without waiting for Redis to send an `INVALIDATE`
* message. The invalidation occurs only in the same FPM pool.
*
* @var int
*/
public const OPT_CLIENT_INVALIDATIONS = 101;
/**
* Integer representing Relay’s allow patterns option.
*
* When set only keys matching these patterns will be cached,
* unless they also match an `OPT_IGNORE_PATTERNS`.
*
* @var int
*/
public const OPT_ALLOW_PATTERNS = 102;
/**
* Integer representing Relay’s ignore patterns option.
*
* When set keys matching these patterns will not be cached.
*
* @var int
*/
public const OPT_IGNORE_PATTERNS = 103;
/**
* Whether use in-memory caching. Enabled by default.
*
* @var int
*/
public const OPT_USE_CACHE = 104;
/**
* Whether to enable client tracking for the connection.
*
* @var int
*/
public const OPT_CLIENT_TRACKING = 105;
/**
* Integer representing the scan option.
*
* @var int
*/
public const OPT_SCAN = 4;
/**
* Whether client capable of handling redirect messages.
*
* @var int
*/
public const OPT_CAPA_REDIRECT = 107;
/**
* Should we restore subscriptions after reconnecting.
*
* @var int
*/
public const OPT_RESTORE_PUBSUB = 108;
/**
* Adaptive caching configuration.
*
* @var int
*/
public const OPT_ADAPTIVE_CACHE = 109;
/**
* Issue one `SCAN` command at a time, sometimes returning an empty array of results.
*
* @var int
*/
public const SCAN_NORETRY = 0;
/**
* Retry the `SCAN` command until keys come back, or iterator of zero is returned.
*
* @var int
*/
public const SCAN_RETRY = 1;
/**
* Prepend the set prefix to any `MATCH` pattern.
*
* @var int
*/
public const SCAN_PREFIX = 2;
/**
* Do not prepend the set prefix to any `MATCH` pattern.
*
* @var int
*/
public const SCAN_NOPREFIX = 3;
/**
* Redis command argument.
*
* @internal
* @var string
*/
public const BEFORE = 'BEFORE';
/**
* Redis command argument.
*
* @internal
* @var string
*/
public const AFTER = 'AFTER';
/**
* Redis command argument.
*
* @internal
* @var string
*/
public const LEFT = 'LEFT';
/**
* Redis command argument.
*
* @internal
* @var string
*/
public const RIGHT = 'RIGHT';
/**
* Integer representing "key not found".
*
* @see Relay::type()
* @var int
*/
public const REDIS_NOT_FOUND = 0;
/**
* Integer representing Redis `string` type.
*
* @see Relay::type()
* @var int
*/
public const REDIS_STRING = 1;
/**
* Integer representing Redis `set` type.
*
* @see Relay::type()
* @var int
*/
public const REDIS_SET = 2;
/**
* Integer representing Redis `list` type.
*
* @see Relay::type()
* @var int
*/
public const REDIS_LIST = 3;
/**
* Integer representing Redis `zset` type.
*
* @see Relay::type()
* @var int
*/
public const REDIS_ZSET = 4;
/**
* Integer representing Redis `hash` type.
*
* @see Relay::type()
* @var int
*/
public const REDIS_HASH = 5;
/**
* Integer representing Redis `stream` type.
*
* @see Relay::type()
* @var int
*/
public const REDIS_STREAM = 6;
/**
* Integer representing Redis `vectorset` type.
*
* @see Relay::type()
* @var int
*/
public const REDIS_VECTORSET = 7;
/**
* The adaptive cache object.
*
* @readonly
* @var AdaptiveCache
*/
public AdaptiveCache $adaptiveCache;
/**
* Establishes a new connection to Redis, or reuses already opened connection.
*
* @example $context array{
* use-cache: bool, // Whether to use in-memory caching
* adaptive-cache: array{
* enabled: bool // Whether to disable adaptive caching
* width: int // Number of horizontal cells in the adaptive cache (Supported values: 512 - (2^31)
* depth: int // Number of vertical cells (Supported values: 1 - 8)
* min_ratio: float // Minimum number of reads + writes before a key should be cached.
* min_events: int // Minimum read-write ratio before a key is cached
* formula: string // The formula used to calculate the read/write ratio for each key
* },
* client-tracking: bool, // Whether to disable Redis' client tracking (write to in-memory cache only)
* client-invalidations: bool, // Whether to invalidate cached keys without waiting for client tracking
* throw-on-error: bool, // Whether to throw exceptions when read errors occur
* phpredis-compatibility: bool, // Whether to use PhpRedis compatibility mode (https://relay.so/docs/compatibility)
* persistent: bool, // Whether to use a persistent connection
* prefix: string, // Prefix used for all keys
* database: int, // Database index to switch to
* auth: string|array<string>, // Password or ACL credentials
* max-retries: int, // Number of reconnection attempts when a command or connection fails
* serializer: int, // The serializer to use (see `OPT_SERIALIZER_*` constants)
* compression: int, // The compression algorithm to use (see `OPT_COMPRESSION_*` constants)
* compression-level: int // The compression level to use
* stream: array, // TLS options (see https://www.php.net/manual/en/context.ssl.php)
* reply-literal: bool, // Whether to return reply literals like `OK` instead of `true`
* null-mbulk-as-null: bool, // Whether to return multibulk as empty array or `null`
* capa-redirect: bool, // Whether to use CAPA redirects (https://valkey.io/commands/client-capa/)
* } $context
*
* @param string|array|null $host
* @param int $port
* @param float $connect_timeout
* @param float $command_timeout
* @param array $context
* @param int $database
*/
#[Attributes\Server]
public function __construct(
string|array|null $host = null,
int $port = 6379,
float $connect_timeout = 0.0,
float $command_timeout = 0.0,
#[\SensitiveParameter] array $context = [],
int $database = 0,
) {}
/**
* Establishes a new connection to Redis, or reuses already opened connection.
*
* @see self::__construct() for context options.
*
* @param string $host
* @param int $port
* @param float $timeout
* @param string|null $persistent_id
* @param int $retry_interval
* @param float $read_timeout
* @param array $context
* @param int $database
* @return bool
*/
#[Attributes\Server]
public function connect(
string $host,
int $port = 6379,
float $timeout = 0.0,
?string $persistent_id = null,
int $retry_interval = 0,
float $read_timeout = 0.0,
#[\SensitiveParameter] array $context = [],
int $database = 0
): bool {}
/**
* Establishes a persistent connection to Redis.
*
* @see self::__construct() for context options.
*
* @param string $host
* @param int $port
* @param float $timeout
* @param string|null $persistent_id
* @param int $retry_interval
* @param float $read_timeout
* @param array $context
* @param int $database
* @return bool
*/
#[Attributes\Server]
public function pconnect(
string $host,
int $port = 6379,
float $timeout = 0.0,
?string $persistent_id = null,
int $retry_interval = 0,
float $read_timeout = 0.0,
#[\SensitiveParameter] array $context = [],
int $database = 0
): bool {}
/**
* Closes the current connection, unless it's persistent.
*
* @return bool
*/
#[Attributes\Local]
public function close(): bool {}
/**
* Closes the current connection, if it's persistent.
*
* @return bool
*/
#[Attributes\Local]
public function pclose(): bool {}
/**
* Registers a new event listener.
*
* @param callable $callback
* @return bool
*/
#[Attributes\Local]
public function listen(?callable $callback): bool {}
/**
* Registers a new `flushed` event listener.
*
* @param callable $callback
* @return bool
*/
#[Attributes\Local]
public function onFlushed(?callable $callback): bool {}
/**
* Registers a new `invalidated` event listener.
*
* @param callable $callback
* @param string|null $pattern
* @return bool
*/
#[Attributes\Local]
public function onInvalidated(?callable $callback, ?string $pattern = null): bool {}
/**
* Dispatches all pending events.
*
* @return int|false
*/
#[Attributes\Local]
public function dispatchEvents(): int|false {}
/**
* Returns a client option.
*
* @param int $option
* @return mixed
*/
#[Attributes\Local]
public function getOption(int $option): mixed {}
/**
* Returns or sets a client option.
*
* @param int $option
* @param mixed $value
* @return mixed
*/
#[Attributes\Local]
public function option(int $option, mixed $value = null): mixed {}
/**
* Sets a client option.
*
* Relay specific options:
*
* - `OPT_ALLOW_PATTERNS`
* - `OPT_IGNORE_PATTERNS`
* - `OPT_THROW_ON_ERROR`
* - `OPT_CLIENT_INVALIDATIONS`
* - `OPT_PHPREDIS_COMPATIBILITY`
*
* Supported PhpRedis options:
*
* - `OPT_PREFIX`
* - `OPT_READ_TIMEOUT`
* - `OPT_COMPRESSION`
* - `OPT_COMPRESSION_LEVEL`
* - `OPT_MAX_RETRIES`
* - `OPT_BACKOFF_ALGORITHM`
* - `OPT_BACKOFF_BASE`
* - `OPT_BACKOFF_CAP`
* - `OPT_SCAN`
* - `OPT_REPLY_LITERAL`
* - `OPT_NULL_MULTIBULK_AS_NULL`
*
* @param int $option
* @param mixed $value
* @return bool
*/
#[Attributes\Local]
public function setOption(int $option, mixed $value): bool {}
/**
* Adds ignore pattern(s). Matching keys will not be cached in memory.
*
* @param string $pattern,...
* @return int
*/
#[Attributes\Local]
public function addIgnorePatterns(string ...$pattern): int {}
/**
* Adds allow pattern(s). Only matching keys will be cached in memory.
*
* @param string $pattern,...
* @return int
*/
#[Attributes\Local]
public function addAllowPatterns(string ...$pattern): int {}
/**
* Returns the connection timeout.
*
* @return float|false
*/
#[Attributes\Local]
public function getTimeout(): float|false {}
/**
* @see Relay\Relay::getTimeout()
*
* @return float|false
*/
#[Attributes\Local]
public function timeout(): float|false {}
/**
* Returns the read timeout.
*
* @return float|false
*/
#[Attributes\Local]
public function getReadTimeout(): float|false {}
/**
* @see Relay\Relay::getReadTimeout()
*
* @return float|false
*/
#[Attributes\Local]
public function readTimeout(): float|false {}
/**
* Returns the number of bytes sent and received over the network during the Relay object's
* lifetime, or since the last time {@link Relay::clearBytes()} was called.
*
* @return array
*/
#[Attributes\Local]
public function getBytes(): array {}
/**
* @see Relay\Relay::getBytes()
*
* @return array
*/
#[Attributes\Local]
public function bytes(): array {}
/**
* Returns the host or unix socket.
*
* @return string|false
*/
#[Attributes\Local]
public function getHost(): string|false {}
/**
* Whether Relay is connected to Redis.
*
* @return bool
*/
#[Attributes\Local]
public function isConnected(): bool {}
/**
* Returns the port.
*
* @return int|false
*/
#[Attributes\Local]
public function getPort(): int|false {}
/**
* Returns the authentication information.
* In PhpRedis compatibility mode this method returns any configured password in plain-text.
*
* @return mixed
*/
#[Attributes\Local]
public function getAuth(): mixed {}
/**
* Returns the currently selected database.
*
* @return int|false
*/
#[Attributes\Local]
public function getDbNum(): mixed {}
/**
* Returns the serialized value.
*
* @param mixed $value
* @return mixed
*/
#[Attributes\Local]
public function _serialize(mixed $value): mixed {}
/**
* Returns the unserialized value.
*
* @param mixed $value
* @return mixed
*/
#[Attributes\Local]
public function _unserialize(mixed $value): mixed {}
/**
* Compress data with Relay's currently configured compression algorithm.
*
* @param string $value
* @return string
*/
#[Attributes\Local]
public function _compress(string $value): string {}
/**
* Uncompress data with Relay's currently configured compression algorithm.
*
* @param string $value
* @return string
*/
#[Attributes\Local]
public function _uncompress(string $value): string {}
/**
* Returns the serialized and compressed value.
*
* @param mixed $value
* @return string
*/
#[Attributes\Local]
public function _pack(mixed $value): string {}
/**
* Returns the unserialized and decompressed value.
*
* @param mixed $value
* @return mixed
*/
#[Attributes\Local]
public function _unpack(mixed $value): mixed {}
/**
* Returns the value with the prefix.
*
* @param mixed $value
* @return string
*/
#[Attributes\Local]
public function _prefix(mixed $value): string {}
/**
* Returns the last error message, if any.
*
* @return string|null
*/
#[Attributes\Local]
public function getLastError(): string|null {}
/**
* Clears the last error that is set, if any.
*
* @return bool
*/
#[Attributes\Local]
public function clearLastError(): bool {}
/**
* Returns the connection's endpoint identifier.
*
* @return string|false
*/
#[Attributes\Local]
public function endpointId(): string|false {}
/**
* @see Relay\Relay::endpointId()
*
* @return string|false
*/
public function getPersistentID(): string|false {}
/**
* Returns a unique representation of the underlying socket connection identifier.
*
* @return string|false
*/
#[Attributes\Local]
public function socketId(): string|false {}
/**
* Returns statistics about Relay.
*
* - `usage.total_requests`: The total number of requests we've seen
* - `usage.active_requests`: The number of requests currently in-flight
* - `usage.max_active_requests`: The most concurrent in-flight requests we've seen
* - `usage.free_epoch_records`: The estimated number of free epoch reclamation records
*
* - `stats.requests`: The total number of requests the cache has received
* - `stats.misses`: Requests where we had to ask Redis for a value
* - `stats.hits`: Requests where we did not have to ask redis for the value
* - `stats.dirty_skips`: The number of times Relay has skipped an entire database because it was dirty.
* - `stats.errors`: How many times a 'severe' error occurs (presently this is only incremented if we get a `null` response from hiredis)
* - `stats.empty`: How many times we've run out of free requests (indicating the size of the ring buffers should be increased)
* - `stats.oom`: The number of times we've run out of memory
* - `stats.ops_per_sec`: The number of commands processed per second
* - `stats.bytes_sent`: The number of bytes Relay has written to the network
* - `stats.bytes_received`: The number of bytes Relay has read from the network
* - `stats.command_usec`: Deprecated
* - `stats.rinit_usec`: The number of microseconds Relay has spent in request initialization
* - `stats.rshutdown_usec`: The number of microseconds Relay has spent in request shutdown
* - `stats.sigio_usec`: The number of microseconds Relay has spent in its SIGIO handler
*
* - `memory.total`: The total bytes of allocated memory
* - `memory.limit`: The capped number of bytes Relay has available to use
* - `memory.active`: The total amount of memory mapped into the allocator
* - `memory.used`: The amount of memory pointing to live objects including metadata
*
* - `endpoints.*.redis`: Information about the connected Redis server of that endpoint
* - `endpoints.*.connections`: Information about the connection of each worker
* - `endpoints.*.adaptive_cache`: Information about the adaptive cache for each endpoint
*
* @return array
*/
#[Attributes\Local]
public static function stats(): array {}
/**
* Returns the number of bytes allocated, or `0` in client-only mode.
*
* @return int
*/
#[Attributes\Local]
public static function maxMemory(): int {}
/**
* Returns the number of bytes allocated, or `0` in client-only mode.
*
* @deprecated 0.5.0 Use `Relay:maxMemory()`
*
* @return int
*/
#[Attributes\Local]
public static function memory(): int {}
/**
* Execute any command against Redis, without applying
* the prefix, compression and serialization.
*
* @param string $cmd
* @param mixed $args,...
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function rawCommand(string $cmd, mixed ...$args): mixed {}
/**
* Select the Redis logical database having the specified zero-based numeric index.
*
* @param int $db
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function select(int $db): Relay|bool {}
/**
* Authenticate the connection using a password or an ACL username and password.
*
* @param mixed $auth
* @return bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function auth(#[\SensitiveParameter] mixed $auth): bool {}
/**
* The INFO command returns information and statistics about Redis in a format
* that is simple to parse by computers and easy to read by humans.
*
* @see https://redis.io/commands/info
*
* @param string $sections,...
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function info(string ...$sections): Relay|array|false {}
/**
* Deletes all the keys of the currently selected database.
*
* @param bool|null $sync
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function flushdb(?bool $sync = null): Relay|bool {}
/**
* Deletes all the keys of all the existing databases, not just the currently selected one.
*
* @param bool|null $sync
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function flushall(?bool $sync = null): Relay|bool {}
/**
* Invokes a Redis function.
*
* @param string $name
* @param array $keys
* @param array $argv
* @param callable|null $handler
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function fcall(string $name, array $keys = [], array $argv = [], ?callable $handler = null): mixed {}
/**
* Invokes a read-only Redis function.
*
* @param string $name
* @param array $keys
* @param array $argv
* @param callable|null $handler
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function fcall_ro(string $name, array $keys = [], array $argv = [], callable $handler = null): mixed {}
/**
* Calls `FUNCTION` sub-command.
*
* @param string $op
* @param string $args,...
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function function(string $op, string ...$args): mixed {}
/**
* Flushes Relay's in-memory cache of all databases.
* When given an endpoint, only that connection will be flushed.
* When given an endpoint and database index, only that database
* for that connection will be flushed.
*
* @param string|null $endpointId
* @param int|null $db
* @return bool
*/
#[Attributes\Local]
public static function flushMemory(?string $endpointId = null, int $db = null): bool {}
/**
* Retrieve the timestamp of the last *user initiated* flush of the in-memory cache.
* User initiated flushes can be done globally, specific to a single endpoint, or
* specific to a single endpoint and database.
*
* Since flushes at higher levels imply flushes at lower levels, Relay will return
* the highest level relevant flush given which level was requested.
*
* @param string|null $endpointId
* @param int|null $db
* @return float|false
*/
#[Attributes\Local]
public static function lastMemoryFlush(?string $endpointId = null, int $db = null): float|false {}
/**
* Run a search query on an index, and perform aggregate
* transformations on the results, extracting statistics etc from them.
*
* @param mixed $index
* @param string $query
* @param array|null $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftAggregate(mixed $index, string $query, ?array $options = null): Relay|array|false {}
/**
* Add an alias to an index.
*
* @param mixed $index
* @param string $alias
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftAliasAdd(mixed $index, string $alias): Relay|bool {}
/**
* Remove an alias from an index.
*
* @param string $alias
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftAliasDel(string $alias): Relay|bool {}
/**
* Add an alias to an index.
* If the alias is already associated with another index,
* removes the alias association with the previous index.
*
* @param mixed $index
* @param string $alias
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftAliasUpdate(mixed $index, string $alias): Relay|bool {}
/**
* Add a new attribute to the index.
* Adding an attribute to the index causes any future doacument updates
* to use the new attribute when indexing and reindexing existing documents.
*
* @param mixed $index
* @param array $schema
* @param bool $skipinitialscan
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftAlter(mixed $index, array $schema, bool $skipinitialscan = false): Relay|bool {}
/**
* Container command for get/set RediSearch configuration parameter.
*
* @param string $operation
* @param string $option
* @param mixed $value
* @return Relay|array|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftConfig(string $operation, string $option, mixed $value = null): Relay|array|bool {}
/**
* Create an index with the given specification.
*
* @param mixed $index
* @param array $schema
* @param array|null $options
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftCreate(mixed $index, array $schema, ?array $options = null): Relay|bool {}
/**
* Container command for del/read existing cursor.
*
* @param string $operation
* @param mixed $index
* @param mixed $cursor
* @param array|null $options
* @return Relay|array|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftCursor(string $operation, mixed $index, mixed $cursor, ?array $options = null): Relay|array|bool {}
/**
* Add terms to a dictionary.
*
* @param mixed $dict
* @param mixed $term
* @param mixed $other_terms,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftDictAdd(mixed $dict, mixed $term, mixed ...$other_terms): Relay|int|false {}
/**
* Delete terms from a dictionary.
*
* @param mixed $dict
* @param mixed $term
* @param mixed $other_terms,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftDictDel(mixed $dict, mixed $term, mixed ...$other_terms): Relay|int|false {}
/**
* Dump all terms in the given dictionary.
*
* @param mixed $dict
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftDictDump(mixed $dict): Relay|array|false {}
/**
* Delete an index.
*
* @param mixed $index
* @param bool $dd
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftDropIndex(mixed $index, bool $dd = false): Relay|bool {}
/**
* Return the execution plan for a complex query.
*
* @param mixed $index
* @param string $query
* @param int $dialect
* @return Relay|string|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftExplain(mixed $index, string $query, int $dialect = 0): Relay|string|false {}
/**
* Return the execution plan for a complex query but formatted for easier reading from CLI.
*
* @param mixed $index
* @param string $query
* @param int $dialect
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftExplainCli(mixed $index, string $query, int $dialect = 0): Relay|array|false {}
/**
* Returns information and statistics about a given index.
*
* @param mixed $index
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftInfo(mixed $index): Relay|array|false {}
/**
* Apply FT.SEARCH or FT.AGGREGATE command to collect performance details.
*
* @param mixed $index
* @param string $command
* @param string $query
* @param bool $limited
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftProfile(mixed $index, string $command, string $query, bool $limited = false): Relay|array|false {}
/**
* Search the index with a textual query, returning either documents or just ids.
*
* @param mixed $index
* @param string $query
* @param array|null $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftSearch(mixed $index, string $query, ?array $options = null): Relay|array|false {}
/**
* Perform spelling correction on a query, returning suggestions for misspelled terms.
*
* @param mixed $index
* @param string $query
* @param array|null $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftSpellCheck(mixed $index, string $query, ?array $options = null): Relay|array|false {}
/**
* Dump the contents of a synonym group.
*
* @param mixed $index
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftSynDump(mixed $index): Relay|array|false {}
/**
* Update a synonym group.
*
* @param mixed $index
* @param string $synonym
* @param mixed $term_or_terms
* @param bool $skipinitialscan
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftSynUpdate(mixed $index, string $synonym, mixed $term_or_terms, bool $skipinitialscan = false): Relay|bool {}
/**
* Return a distinct set of values indexed in a Tag field.
*
* @param mixed $index
* @param string $tag
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ftTagVals(mixed $index, string $tag): Relay|array|false {}
/**
* Returns the number of keys in the currently-selected database.
*
* @return Relay|int
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function dbsize(): Relay|int|false {}
/**
* Serialize and return the value stored at key in a Redis-specific format.
*
* @param mixed $key
* @return Relay|string|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function dump(mixed $key): Relay|string|null|false {}
/**
* Attach or detach the instance as a replica of another instance.
*
* @param string|null $host
* @param int $port
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function replicaof(?string $host = null, $port = 0): Relay|bool {}
/**
* Pause the client until sufficient local and/or remote AOF data has been flushed to disk.
*
* @param int $numlocal
* @param int $numremote
* @return Relay|array
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function waitaof(int $numlocal, int $numremote, int $timeout): Relay|array|false {}
/**
* Create a key associated with a value that is obtained by deserializing the provided serialized value.
*
* @param mixed $key
* @param int $ttl
* @param string $value
* @param array $options
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function restore(mixed $key, int $ttl, string $value, ?array $options = null): Relay|bool {}
/**
* Atomically transfer a key from a Redis instance to another one.
*
* @param string $host
* @param int $port
* @param string|array $key
* @param int $dstdb
* @param int $timeout
* @param bool $copy
* @param bool $replace
* @param mixed $credentials
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function migrate(
string $host,
int $port,
string|array $key,
int $dstdb,
int $timeout,
bool $copy = false,
bool $replace = false,
#[\SensitiveParameter] mixed $credentials = null
): Relay|bool {}
/**
* This command copies the value stored at the source key to the destination key.
*
* @param mixed $src
* @param mixed $dst
* @param array $options
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function copy(mixed $src, mixed $dst, ?array $options = null): Relay|bool {}
/**
* Asks Redis to echo back the provided string.
*
* @param string $arg
* @return Relay|bool|string
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function echo(string $arg): Relay|bool|string {}
/**
* Returns PONG if no argument is provided, otherwise return a copy of the argument as a bulk.
*
* @param string $arg
* @return Relay|bool|string
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ping(string $arg = null): Relay|bool|string {}
/**
* Returns the number of milliseoconds since Relay has seen activity from the server.
*
* @return Relay|int|false
*/
#[Attributes\Local]
public function idleTime(): Relay|int|false {}
/**
* Returns a random key from Redis.
*
* @return Relay|string|null|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function randomkey(): Relay|string|null|bool {}
/**
* Returns the current time from Redis.
*
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function time(): Relay|array|false {}
/**
* Asynchronously rewrite the append-only file.
*
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function bgrewriteaof(): Relay|bool {}
/**
* Returns the UNIX time stamp of the last successful save to disk.
*
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function lastsave(): Relay|int|false {}
/**
* Get the longest common subsequence between two string keys.
*
* @param mixed $key1
* @param mixed $key2
* @param array|null $options
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function lcs(mixed $key1, mixed $key2, ?array $options = null): mixed {}
/**
* Asynchronously save the dataset to disk.
*
* @param null|string $arg
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function bgsave(null|string $arg = null): Relay|bool {}
/**
* Synchronously save the dataset to disk.
*
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function save(): Relay|bool {}
/**
* Returns the role of the instance in the context of replication.
*
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function role(): Relay|array|false {}
/**
* Returns the remaining time to live of a key that has a timeout in seconds.
*
* @param mixed $key
* @return Relay|int
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ttl(mixed $key): Relay|int|false {}
/**
* Returns the remaining time to live of a key that has a timeout in milliseconds.
*
* @param mixed $key
* @return Relay|int
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function pttl(mixed $key): Relay|int|false {}
/**
* Returns if key(s) exists.
*
* @param mixed $keys,...
* @return Relay|bool|int
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function exists(mixed ...$keys): Relay|bool|int {}
/**
* Evaluate script using the Lua interpreter.
*
* @see https://redis.io/commands/eval
*
* @param mixed $script
* @param array $args
* @param int $num_keys
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function eval(mixed $script, array $args = [], int $num_keys = 0): mixed {}
/**
* Evaluate script using the Lua interpreter. This is just the "read-only" variant of EVAL
* meaning it can be run on read-only replicas.
*
* @see https://redis.io/commands/eval_ro
*
* @param mixed $script
* @param array $args
* @param int $num_keys
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function eval_ro(mixed $script, array $args = [], int $num_keys = 0): mixed {}
/**
* Evaluates a script cached on the server-side by its SHA1 digest.
*
*
* @param string $sha
* @param array $args
* @param int $num_keys
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function evalsha(string $sha, array $args = [], int $num_keys = 0): mixed {}
/**
* Evaluates a script cached on the server-side by its SHA1 digest. This is just the "read-only" variant
* of `EVALSHA` meaning it can be run on read-only replicas.
*
* @param string $sha
* @param array $args
* @param int $num_keys
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function evalsha_ro(string $sha, array $args = [], int $num_keys = 0): mixed {}
/**
* Executes `CLIENT` command operations.
*
* @param string $operation
* @param mixed $args,...
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function client(string $operation, mixed ...$args): mixed {}
/**
* Add one or more members to a geospacial sorted set.
*
* @param string $key
* @param float $lng
* @param float $lat
* @param string $member
* @param mixed $other_triples_and_options,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function geoadd(
string $key,
float $lng,
float $lat,
string $member,
mixed ...$other_triples_and_options
): Relay|int|false {}
/**
* Get the distance between two members of a geospacially encoded sorted set.
*
* @param string $key
* @param string $src
* @param string $dst
* @param string|null $unit
* @return Relay|float|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function geodist(string $key, string $src, string $dst, ?string $unit = null): Relay|float|null|false {}
/**
* Retrieve one or more GeoHash encoded strings for members of the set.
*
* @param string $key
* @param string $member
* @param string $other_members,...
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function geohash(string $key, string $member, string ...$other_members): Relay|array|false {}
/**
* Retrieve members of a geospacially sorted set that are within a certain radius of a location.
*
* @param string $key
* @param float $lng
* @param float $lat
* @param float $radius
* @param string $unit
* @param array $options
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function georadius(string $key, float $lng, float $lat, float $radius, string $unit, array $options = []): mixed {}
/**
* Similar to `GEORADIUS` except it uses a member as the center of the query.
*
* @param string $key
* @param string $member
* @param float $radius
* @param string $unit
* @param array $options
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function georadiusbymember(string $key, string $member, float $radius, string $unit, array $options = []): mixed {}
/**
* Similar to `GEORADIUS` except it uses a member as the center of the query.
*
* @param string $key
* @param string $member
* @param float $radius
* @param string $unit
* @param array $options
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function georadiusbymember_ro(string $key, string $member, float $radius, string $unit, array $options = []): mixed {}
/**
* Retrieve members of a geospacially sorted set that are within a certain radius of a location.
*
* @param string $key
* @param float $lng
* @param float $lat
* @param float $radius
* @param string $unit
* @param array $options
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function georadius_ro(string $key, float $lng, float $lat, float $radius, string $unit, array $options = []): mixed {}
/**
* Search a geospacial sorted set for members in various ways.
*
* @param string $key
* @param array|string $position
* @param array|int|float $shape
* @param string $unit
* @param array $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function geosearch(
string $key,
array|string $position,
array|int|float $shape,
string $unit,
array $options = []
): Relay|array|false {}
/**
* Search a geospacial sorted set for members within a given area or range,
* storing the results into a new set.
*
* @param string $dst
* @param string $src
* @param array|string $position
* @param array|int|float $shape
* @param string $unit
* @param array $options
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function geosearchstore(
string $dst,
string $src,
array|string $position,
array|int|float $shape,
string $unit,
array $options = []
): Relay|int|false {}
/**
* Get the value of key.
*
* @param mixed $key
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function get(mixed $key): mixed {}
/**
* Get the value and metadata of key.
*
* Result is an array with value and metadata or `false` in case of error.
* Currently metadata contains following elements:
* - cached whether value comes from in-memory cache or from server
* - length number of bytes used to store value
*
* @param mixed $key
* @return Relay|array{0: mixed, 1: array{cached: bool, length: int}}|false
*/
#[Attributes\Server, Attributes\Cached]
public function getWithMeta(mixed $key): Relay|array|false {}
/**
* Atomically sets key to value and returns the old value stored at key.
*
* @param mixed $key
* @param mixed $value
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function getset(mixed $key, mixed $value): mixed {}
/**
* Returns the substring of the string value stored at key,
* determined by the offsets start and end (both are inclusive).
*
* @param mixed $key
* @param int $start
* @param int $end
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function getrange(mixed $key, int $start, int $end): mixed {}
/**
* Overwrites part of the string stored at key, starting at
* the specified offset, for the entire length of value.
*
* @param mixed $key
* @param int $start
* @param mixed $value
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function setrange(mixed $key, int $start, mixed $value): Relay|int|false {}
/**
* Returns the bit value at offset in the string value stored at key.
*
* @param mixed $key
* @param int $pos
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function getbit(mixed $key, int $pos): Relay|int|false {}
/**
* Count the number of set bits (population counting) in a string.
*
* @param mixed $key
* @param int $start
* @param int $end
* @param bool $by_bit
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function bitcount(mixed $key, int $start = 0, int $end = -1, bool $by_bit = false): Relay|int|false {}
/**
* Perform various bitfield operations on a string key,
* such as getting/setting bit ranges, incrementing, etc.
*
* @param mixed $key
* @param mixed $args,...
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function bitfield(mixed $key, mixed ...$args): Relay|array|false {}
/**
* This is a container command for runtime configuration commands.
*
* @param string $operation
* @param mixed $key
* @param string|null $value
* @return Relay|array|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function config(string $operation, mixed $key = null, ?string $value = null): Relay|array|bool {}
/**
* Return an array with details about every Redis command.
*
* @param array $args,...
* @return Relay|array|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function command(mixed ...$args): Relay|array|int|false {}
/**
* Perform a bitwise operation on one or more keys, storing the result in a new key.
*
* @param string $operation
* @param string $dstkey
* @param string $srckey
* @param string $other_keys,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function bitop(string $operation, string $dstkey, string $srckey, string ...$other_keys): Relay|int|false {}
/**
* Return the position of the first bit set to 1 or 0 in a string.
*
* @param mixed $key
* @param int $bit
* @param int $start
* @param int $end
* @param bool $bybit
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function bitpos(mixed $key, int $bit, int $start = null, int $end = null, bool $bybit = false): Relay|int|false {}
/**
* Sets or clears the bit at offset in the string value stored at key.
*
* @param mixed $key
* @param int $pos
* @param int $val
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function setbit(mixed $key, int $pos, int $val): Relay|int|false {}
/**
* Interact with ACLs.
*
* @param string $cmd
* @param string $args,...
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function acl(string $cmd, string ...$args): mixed {}
/**
* If key already exists and is a string, this command appends
* the value at the end of the string. If key does not exist
* it is created and set as an empty string, so APPEND will
* be similar to SET in this special case.
*
* @param mixed $key
* @param mixed $value
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function append(mixed $key, mixed $value): Relay|int|false {}
/**
* Set key to hold the string value. If key already holds
* a value, it is overwritten, regardless of its type.
*
* @param mixed $key
* @param mixed $value
* @param mixed $options
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function set(mixed $key, mixed $value, mixed $options = null): mixed {}
/**
* Get the value of key and optionally set its expiration.
* GETEX is similar to GET, but is a write command with additional options.
*
* @param mixed $key
* @param array $options
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function getex(mixed $key, ?array $options = null): mixed {}
/**
* Get the value of key and delete the key. This command is similar to GET,
* except for the fact that it also deletes the key on success
* (if and only if the key's value type is a string).
*
* @param mixed $key
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function getdel(mixed $key): mixed {}
/**
* Set key to hold the string value and set key to timeout after a given number of seconds.
*
* @param mixed $key
* @param int $seconds
* @param mixed $value
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function setex(mixed $key, int $seconds, mixed $value): Relay|bool {}
/**
* Adds the specified elements to the specified HyperLogLog.
*
* @param string $key
* @param array $elements
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function pfadd(string $key, array $elements): Relay|int|false {}
/**
* Return the approximated cardinality of the set(s) observed by the HyperLogLog at key(s).
*
* @param string|array $key_or_keys
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function pfcount(string|array $key_or_keys): Relay|int|false {}
/**
* Merge given HyperLogLogs into a single one.
*
* @param string $dst
* @param array $srckeys
* @return Relay|bool
*/
public function pfmerge(string $dst, array $srckeys): Relay|bool {}
/**
* Set key to hold the string value and set key to timeout after a given number of milliseconds.
*
*
* @param mixed $key
* @param int $milliseconds
* @param mixed $value
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function psetex(mixed $key, int $milliseconds, mixed $value): Relay|bool {}
/**
* Posts a message to the given channel.
*
* @param string $channel
* @param string $message
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function publish(string $channel, string $message): Relay|int|false {}
/**
* A container command for Pub/Sub introspection commands.
*
* @param string $operation
* @param mixed $args,...
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function pubsub(string $operation, mixed ...$args): mixed {}
/**
* Posts a message to the given shard channel.
*
* @param string $channel
* @param string $message
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function spublish(string $channel, string $message): Relay|int|false {}
/**
* Set key to hold string value if key does not exist. In that case, it is equal to SET.
* When key already holds a value, no operation is performed.
* SETNX is short for "SET if Not eXists".
*
* @param mixed $key
* @param mixed $value
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function setnx(mixed $key, mixed $value): Relay|bool {}
/**
* Returns the values of all specified keys.
*
* @param array $keys
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function mget(array $keys): Relay|array|false {}
/**
* Move key from the currently selected database to the specified destination database.
*
* @param mixed $key
* @param int $db
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function move(mixed $key, int $db): Relay|int|false {}
/**
* Sets the given keys to their respective values.
* MSET replaces existing values with new values, just as regular SET.
*
* @param array $kvals
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function mset(array $kvals): Relay|bool {}
/**
* Sets the given keys to their respective values.
* MSETNX will not perform any operation at all even if just a single key already exists.
*
* @param array $kvals
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function msetnx(array $kvals): Relay|bool {}
/**
* Renames key.
*
* @param mixed $key
* @param mixed $newkey
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function rename(mixed $key, mixed $newkey): Relay|bool {}
/**
* Renames key if the new key does not yet exist.
*
* @param mixed $key
* @param mixed $newkey
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function renamenx(mixed $key, mixed $newkey): Relay|bool {}
/**
* Removes the specified keys.
*
* @param mixed $keys,...
* @return Relay|int|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function del(mixed ...$keys): Relay|int|bool {}
/**
* Remove a key if it equals the provided value.
*
* @param mixed $key
* @param mixed $value
* @return Relay|int|false
*/
#[Attributes\ValkeyCommand]
public function delifeq(mixed $key, mixed $value): Relay|int|false {}
/**
* Removes the specified keys without blocking Redis.
*
* @param mixed $keys,...
* @return Relay|int
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function unlink(mixed ...$keys): Relay|int|false {}
/**
* Set a timeout on key.
*
* @param mixed $key
* @param int $seconds
* @param string|null $mode
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function expire(mixed $key, int $seconds, ?string $mode = null): Relay|bool {}
/**
* Set a key's time to live in milliseconds.
*
* @param mixed $key
* @param int $milliseconds
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function pexpire(mixed $key, int $milliseconds): Relay|bool {}
/**
* Set a timeout on key using a unix timestamp.
*
* @param mixed $key
* @param int $timestamp
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function expireat(mixed $key, int $timestamp): Relay|bool {}
/**
* Returns the absolute Unix timestamp in seconds at which the given key will expire.
* If the key exists but doesn't have a TTL this function return -1.
* If the key does not exist -2.
*
* @param mixed $key
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function expiretime(mixed $key): Relay|int|false {}
/**
* Set the expiration for a key as a UNIX timestamp specified in milliseconds.
*
* @param mixed $key
* @param int $timestamp_ms
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function pexpireat(mixed $key, int $timestamp_ms): Relay|bool {}
/**
* Semantic the same as EXPIRETIME, but returns the absolute Unix expiration
* timestamp in milliseconds instead of seconds.
*
* @param mixed $key
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function pexpiretime(mixed $key): Relay|int|false {}
/**
* Remove the existing timeout on key, turning the key from volatile to persistent.
*
* @param mixed $key
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function persist(mixed $key): Relay|bool {}
/**
* Returns the type of a given key.
*
* In PhpRedis compatibility mode this will return an integer
* (one of the REDIS_<type>) constants. Otherwise it will
* return the string that Redis returns.
*
* @param mixed $key
* @return Relay|int|string|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function type(mixed $key): Relay|int|string|bool {}
/**
* Atomically returns and removes the first/last element of the list
* stored at source, and pushes the element at the first/last
* element of the list stored at destination.
*
* @param mixed $srckey
* @param mixed $dstkey
* @param string $srcpos
* @param string $dstpos
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function lmove(mixed $srckey, mixed $dstkey, string $srcpos, string $dstpos): mixed {}
/**
* BLMOVE is the blocking variant of LMOVE. When source contains elements,
* this command behaves exactly like LMOVE. When used inside a
* MULTI/EXEC block, this command behaves exactly like LMOVE.
*
* @param mixed $srckey
* @param mixed $dstkey
* @param string $srcpos
* @param string $dstpos
* @param float $timeout
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function blmove(mixed $srckey, mixed $dstkey, string $srcpos, string $dstpos, float $timeout): mixed {}
/**
* Returns the specified elements of the list stored at key.
*
* @param mixed $key
* @param int $start
* @param int $stop
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function lrange(mixed $key, int $start, int $stop): Relay|array|false {}
/**
* Insert all the specified values at the head of the list stored at key.
*
* @param mixed $key
* @param mixed $mem
* @param mixed $mems,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function lpush(mixed $key, mixed $mem, mixed ...$mems): Relay|int|false {}
/**
* Insert all the specified values at the tail of the list stored at key.
*
* @param mixed $key
* @param mixed $mem
* @param mixed $mems,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function rpush(mixed $key, mixed $mem, mixed ...$mems): Relay|int|false {}
/**
* Inserts specified values at the head of the list stored at key,
* only if key already exists and holds a list.
*
* @param mixed $key
* @param mixed $mem
* @param mixed $mems,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function lpushx(mixed $key, mixed $mem, mixed ...$mems): Relay|int|false {}
/**
* Inserts specified values at the tail of the list stored at key,
* only if key already exists and holds a list.
*
* @param mixed $key
* @param mixed $mem
* @param mixed $mems,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function rpushx(mixed $key, mixed $mem, mixed ...$mems): Relay|int|false {}
/**
* Sets the list element at index to element.
*
* @param mixed $key
* @param int $index
* @param mixed $mem
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function lset(mixed $key, int $index, mixed $mem): Relay|bool {}
/**
* Removes and returns the first elements of the list stored at key.
*
* @param mixed $key
* @param int $count
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function lpop(mixed $key, int $count = 1): mixed {}
/**
* The command returns the index of matching elements inside a Redis list.
*
* @param mixed $key
* @param mixed $value
* @param array $options
* @return Relay|int|array|false|null
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function lpos(mixed $key, mixed $value, ?array $options = null): Relay|int|array|false|null {}
/**
* Removes and returns the last elements of the list stored at key.
*
* @param mixed $key
* @param int $count
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function rpop(mixed $key, int $count = 1): mixed {}
/**
* Atomically returns and removes the last element (tail) of the list stored at source,
* and pushes the element at the first element (head) of the list stored at destination.
*
* @param mixed $source
* @param mixed $dest
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function rpoplpush(mixed $source, mixed $dest): mixed {}
/**
* Atomically returns and removes the last element (tail) of the list stored at source,
* and pushes the element at the first element (head) of the list stored at destination.
* This command will block for an element up to the provided timeout.
*
* @param mixed $source
* @param mixed $dest
* @param float $timeout
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function brpoplpush(mixed $source, mixed $dest, float $timeout): mixed {}
/**
* BLPOP is a blocking list pop primitive. It is the blocking version of LPOP because
* it blocks the connection when there are no elements to pop from any of the given lists.
*
* @param string|array $key
* @param string|float $timeout_or_key
* @param array $extra_args,...
* @return Relay|array|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function blpop(string|array $key, string|float $timeout_or_key, mixed ...$extra_args): Relay|array|null|false {}
/**
* Pop elements from a list, or block until one is available.
*
* @param float $timeout
* @param array $keys
* @param string $from
* @param int $count
* @return Relay|array|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function blmpop(float $timeout, array $keys, string $from, int $count = 1): Relay|array|null|false {}
/**
* Remove and return members with scores in a sorted set or block until one is available.
*
* @param float $timeout
* @param array $keys
* @param string $from
* @param int $count
* @return Relay|array|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function bzmpop(float $timeout, array $keys, string $from, int $count = 1): Relay|array|null|false {}
/**
* Pops one or more elements from the first non-empty list key from the list of provided key names.
*
* @param array $keys
* @param string $from
* @param int $count
* @return Relay|array|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function lmpop(array $keys, string $from, int $count = 1): Relay|array|null|false {}
/**
* Pops one or more elements, that are member-score pairs, from the
* first non-empty sorted set in the provided list of key names.
*
* @param array $keys
* @param string $from
* @param int $count
* @return Relay|array|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zmpop(array $keys, string $from, int $count = 1): Relay|array|null|false {}
/**
* BRPOP is a blocking list pop primitive. It is the blocking version of RPOP because
* it blocks the connection when there are no elements to pop from any of the given lists.
*
* @param string|array $key
* @param string|float $timeout_or_key
* @param array $extra_args,...
* @return Relay|array|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function brpop(string|array $key, string|float $timeout_or_key, mixed ...$extra_args): Relay|array|null|false {}
/**
* BZPOPMAX is the blocking variant of the sorted set ZPOPMAX primitive.
*
* @param string|array $key
* @param string|float $timeout_or_key
* @param array $extra_args,...
* @return Relay|array|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function bzpopmax(string|array $key, string|float $timeout_or_key, mixed ...$extra_args): Relay|array|null|false {}
/**
* BZPOPMIN is the blocking variant of the sorted set ZPOPMIN primitive.
*
* @param string|array $key
* @param string|float $timeout_or_key
* @param array $extra_args,...
* @return Relay|array|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function bzpopmin(string|array $key, string|float $timeout_or_key, mixed ...$extra_args): Relay|array|null|false {}
/**
* This is a container command for object introspection commands.
*
* @param string $op
* @param mixed $key
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function object(string $op, mixed $key): mixed {}
/**
* Return the positions (longitude,latitude) of all the specified members
* of the geospatial index represented by the sorted set at key.
*
* @param mixed $key
* @param mixed $members,...
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function geopos(mixed $key, mixed ...$members): Relay|array|false {}
/**
* Removes the first count occurrences of elements equal to element from the list stored at key.
*
* @param mixed $key
* @param mixed $mem
* @param int $count
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function lrem(mixed $key, mixed $mem, int $count = 0): Relay|int|false {}
/**
* Returns the element at index index in the list stored at key.
*
* @param mixed $key
* @param int $index
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function lindex(mixed $key, int $index): mixed {}
/**
* Inserts element in the list stored at key either before or after the reference value pivot.
*
* @param mixed $key
* @param string $op
* @param mixed $pivot
* @param mixed $element
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function linsert(mixed $key, string $op, mixed $pivot, mixed $element): Relay|int|false {}
/**
* Trim an existing list so that it will contain only the specified range of elements specified.
*
* @param mixed $key
* @param int $start
* @param int $end
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ltrim(mixed $key, int $start, int $end): Relay|bool {}
/**
* Returns the value associated with field in the hash stored at key.
*
* @param mixed $hash
* @param mixed $member
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function hget(mixed $hash, mixed $member): mixed {}
/**
* Returns one or more fields while also setting an expiration on them.
*
* @param mixed $hash
* @param array $fields
* @param mixed $expiry = null
* @return Relay|array|false
*/
public function hgetex(mixed $hash, array $fields, mixed $expiry = null): Relay|array|false {}
/**
* Returns the string length of the value associated with field in the hash stored at key.
*
* @param mixed $hash
* @param mixed $member
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function hstrlen(mixed $hash, mixed $member): Relay|int|false {}
/**
* Returns all fields and values of the hash stored at key.
*
* @param mixed $hash
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function hgetall(mixed $hash): Relay|array|false {}
/**
* Returns all field names in the hash stored at key.
*
* @param mixed $hash
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function hkeys(mixed $hash): Relay|array|false {}
/**
* Returns all values in the hash stored at key.
*
* @param mixed $hash
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function hvals(mixed $hash): Relay|array|false {}
/**
* Returns the values associated with the specified fields in the hash stored at key.
*
* @param mixed $hash
* @param array $members
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function hmget(mixed $hash, array $members): Relay|array|false {}
/**
* Gets and deletes one or more hash fields.
*
* @param mixed $key
* @param array $fields
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function hgetdel(mixed $key, array $fields): Relay|array|false {}
/**
* When called with just the key argument, return a random field from the hash value stored at key.
*
* @param mixed $hash
* @param array $options
* @return Relay|array|string|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function hrandfield(mixed $hash, ?array $options = null): Relay|array|string|null|false {}
/**
* Sets the specified fields to their respective values in the hash stored at key.
*
* @param mixed $hash
* @param array $members
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function hmset(mixed $hash, array $members): Relay|bool {}
/**
* Returns if field is an existing field in the hash stored at key.
*
* @param mixed $hash
* @param mixed $member
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function hexists(mixed $hash, mixed $member): Relay|bool {}
/**
* Se an expiration for one or more hash fields.
*
* @param mixed $hash
* @param int $ttl
* @param array $fields
* @param string $mode
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function hexpire(mixed $hash, int $ttl, array $fields, ?string $mode = null): Relay|array|false {}
/**
* Set a millisecond resolution expiry on one or more hash fields.
*
* @param mixed $hash
* @param int $ttl
* @param array $fields
* @param string $mode
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function hpexpire(mixed $hash, int $ttl, array $fields, ?string $mode = null): Relay|array|false {}
/**
* Set a unix timestamp expiration for one or more hash fields.
*
* @param mixed $hash
* @param int $ttl
* @param array $fields
* @param string $mode
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function hexpireat(mixed $hash, int $ttl, array $fields, ?string $mode = null): Relay|array|false {}
/**
* Set a millisecond resolution unix timestamp expiration for one or more hash fields.
*
* @param mixed $hash
* @param int $ttl
* @param array $fields
* @param string $mode
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function hpexpireat(mixed $hash, int $ttl, array $fields, ?string $mode = null): Relay|array|false {}
/**
* Get the expire time in seconds for one or more hash fields.
*
* @param mixed $hash
* @param array $fields
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function httl(mixed $hash, array $fields): Relay|array|false {}
/**
* Get the expire time in milliseconds for one or more hash fields.
*
* @param mixed $hash
* @param array $fields
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function hpttl(mixed $hash, array $fields): Relay|array|false {}
/**
* Get the unix timestamp expiration time for one or more hash fields.
*
* @param mixed $hash
* @param array $fields
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function hexpiretime(mixed $hash, array $fields): Relay|array|false {}
/**
* Get the millisecond precision unix timestamp
* expiration time for one or more hash fields.
*
* @param mixed $hash
* @param array $fields
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function hpexpiretime(mixed $hash, array $fields): Relay|array|false {}
/**
* Persist one or more hash fields.
*
* @param mixed $hash
* @param array $fields
* @return Relay|array|false
*/
public function hpersist(mixed $hash, array $fields): Relay|array|false {}
/**
* Sets field in the hash stored at key to value, only if field does not yet exist.
*
* @param mixed $hash
* @param mixed $member
* @param mixed $value
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function hsetnx(mixed $hash, mixed $member, mixed $value): Relay|bool {}
/**
* Sets field in the hash stored at key to value.
*
* @param mixed $key
* @param mixed $keys_and_vals...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function hset(mixed $key, mixed ...$keys_and_vals): Relay|int|false {}
/**
* Set one or more hash fields and values with expiration options.
*
* @param mixed $key
* @param array $fields
* @param null|int|float|array $expiry = null
* @return Relay|int|false
*/
#[Attributes\RedisCommand]
public function hsetex(mixed $key, array $fields, null|int|float|array $expiry = null): Relay|int|false {}
/**
* Removes the specified fields from the hash stored at key.
*
* @param mixed $key
* @param mixed $mem
* @param string $mems,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function hdel(mixed $key, mixed $mem, string ...$mems): Relay|int|false {}
/**
* Increments the number stored at field in the hash stored at key by increment.
*
* @param mixed $key
* @param mixed $mem
* @param int $value
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function hincrby(mixed $key, mixed $mem, int $value): Relay|int|false {}
/**
* Increment the specified field of a hash stored at key, and representing
* a floating point number, by the specified increment.
*
* @param mixed $key
* @param mixed $mem
* @param float $value
* @return Relay|float|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function hincrbyfloat(mixed $key, mixed $mem, float $value): Relay|float|bool {}
/**
* Increments the number stored at key by one.
*
* @param mixed $key
* @param int $by
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function incr(mixed $key, int $by = 1): Relay|int|false {}
/**
* Decrements the number stored at key by one.
*
* @param mixed $key
* @param int $by
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function decr(mixed $key, int $by = 1): Relay|int|false {}
/**
* Increments the number stored at key by increment.
*
* @param mixed $key
* @param int $value
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function incrby(mixed $key, int $value): Relay|int|false {}
/**
* Decrements the number stored at key by decrement.
*
* @param mixed $key
* @param int $value
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function decrby(mixed $key, int $value): Relay|int|false {}
/**
* Increment the string representing a floating point number stored at key by the specified increment.
*
* @param mixed $key
* @param float $value
* @return Relay|float|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function incrbyfloat(mixed $key, float $value): Relay|float|false {}
/**
* Append the json values into the array at path after the last element in it.
*
* @param mixed $key
* @param mixed $value_or_array
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonArrAppend(mixed $key, mixed $value_or_array, ?string $path = null): Relay|array|false {}
/**
* Search for the first occurrence of a JSON value in an array.
*
* @param mixed $key
* @param string $path
* @param mixed $value
* @param int|null $start
* @param int|null $stop
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonArrIndex(mixed $key, string $path, mixed $value, ?int $start = 0, ?int $stop = -1): Relay|array|false {}
/**
* Insert the json values into the array at path before the index (shifts to the right).
*
* @param mixed $key
* @param string $path
* @param int $index
* @param mixed $value
* @param mixed $other_values,...
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonArrInsert(mixed $key, string $path, int $index, mixed $value, mixed ...$other_values): Relay|array|false {}
/**
* Report the length of the JSON array at path in key.
*
* @param mixed $key
* @param string|null $path
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonArrLen(mixed $key, ?string $path = null): Relay|array|false {}
/**
* Remove and return an element from the index in the array.
*
* @param mixed $key
* @param string|null $path
* @param int $index
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonArrPop(mixed $key, ?string $path = null, int $index = -1): Relay|array|false {}
/**
* Trim an array so that it contains only the specified inclusive range of elements.
*
* @param mixed $key
* @param string $path
* @param int $start
* @param int $stop
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonArrTrim(mixed $key, string $path, int $start, int $stop): Relay|array|false {}
/**
* Clear container values (arrays/objects) and set numeric values to 0.
*
* @param mixed $key
* @param string|null $path
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonClear(mixed $key, ?string $path = null): Relay|int|false {}
/**
* Container command for JSON debugging related tasks.
*
* @param string $command
* @param mixed $key
* @param string|null $path
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonDebug(string $command, mixed $key, ?string $path = null): Relay|int|false {}
/**
* Delete a value.
*
* @param mixed $key
* @param string|null $path
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonDel(mixed $key, ?string $path = null): Relay|int|false {}
/**
* @see Relay::jsonDel
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonForget(mixed $key, ?string $path = null): Relay|int|false {}
/**
* Return the value at path in JSON serialized form.
*
* @param mixed $key
* @param array $options
* @param string $paths,...
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonGet(mixed $key, array $options = [], string ...$paths): mixed {}
/**
* Merge a given JSON value into matching paths. Consequently, JSON values
* at matching paths are updated, deleted, or expanded with new children.
*
* @param mixed $key
* @param string $path
* @param mixed $value
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonMerge(mixed $key, string $path, mixed $value): Relay|bool {}
/**
* Return the values at path from multiple key arguments.
*
* @param mixed $key_or_array
* @param string $path
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonMget(mixed $key_or_array, string $path): Relay|array|false {}
/**
* Set or update one or more JSON values according to the specified key-path-value triplets.
*
* @param mixed $key
* @param string $path
* @param mixed $value
* @param mixed $other_triples
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonMset(mixed $key, string $path, mixed $value, mixed ...$other_triples): Relay|bool {}
/**
* Increment the number value stored at path by number.
*
* @param mixed $key
* @param string $path
* @param int $value
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonNumIncrBy(mixed $key, string $path, int $value): Relay|array|false {}
/**
* Multiply the number value stored at path by number.
*
* @param mixed $key
* @param string $path
* @param int $value
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonNumMultBy(mixed $key, string $path, int $value): Relay|array|false {}
/**
* Return the keys in the object that's referenced by path.
*
* @param mixed $key
* @param string|null $path
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonObjKeys(mixed $key, ?string $path = null): Relay|array|false {}
/**
* Report the number of keys in the JSON object at path in key.
*
* @param mixed $key
* @param string|null $path
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonObjLen(mixed $key, ?string $path = null): Relay|array|false {}
/**
* Return the JSON in key in RESP specification form.
*
* @param mixed $key
* @param string|null $path
* @return Relay|array|string|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonResp(mixed $key, ?string $path = null): Relay|array|string|int|false {}
/**
* Set the JSON value at path in key.
*
* @param mixed $key
* @param string $path
* @param mixed $value
* @param string|null $condition
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonSet(mixed $key, string $path, mixed $value, ?string $condition = null): Relay|bool {}
/**
* Append the json-string values to the string at path.
*
* @param mixed $key
* @param mixed $value
* @param string|null $path
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonStrAppend(mixed $key, mixed $value, ?string $path = null): Relay|array|false {}
/**
* Report the length of the JSON String at path in key.
*
* @param mixed $key
* @param string|null $path
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonStrLen(mixed $key, ?string $path = null): Relay|array|false {}
/**
* Toggle a Boolean value stored at path.
*
* @param mixed $key
* @param string $path
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonToggle(mixed $key, string $path): Relay|array|false {}
/**
* Report the type of JSON value at path.
*
* @param mixed $key
* @param string|null $path
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function jsonType(mixed $key, ?string $path = null): Relay|array|false {}
/**
* Returns the members of the set resulting from the difference
* between the first set and all the successive sets.
*
* @param mixed $key
* @param mixed $other_keys,...
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function sdiff(mixed $key, mixed ...$other_keys): Relay|array|false {}
/**
* This command is equal to SDIFF, but instead of returning the resulting set,
* it is stored in destination. If destination already exists, it is overwritten.
*
* @param mixed $key
* @param mixed $other_keys,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function sdiffstore(mixed $key, mixed ...$other_keys): Relay|int|false {}
/**
* Returns the members of the set resulting from the intersection of all the given sets.
*
* @param mixed $key
* @param mixed $other_keys,...
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function sinter(mixed $key, mixed ...$other_keys): Relay|array|false {}
/**
* Intersect multiple sets and return the cardinality of the result.
*
* @param array $keys
* @param int $limit
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function sintercard(array $keys, int $limit = -1): Relay|int|false {}
/**
* This command is equal to SINTER, but instead of returning the resulting set,
* it is stored in destination. If destination already exists, it is overwritten.
*
* @param mixed $key
* @param mixed $other_keys,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function sinterstore(mixed $key, mixed ...$other_keys): Relay|int|false {}
/**
* Returns the members of the set resulting from the union of all the given sets.
*
* @param mixed $key
* @param mixed $other_keys,...
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function sunion(mixed $key, mixed ...$other_keys): Relay|array|false {}
/**
* This command is equal to SUNION, but instead of returning the resulting set,
* it is stored in destination. If destination already exists, it is overwritten.
*
* @param mixed $key
* @param mixed $other_keys,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function sunionstore(mixed $key, mixed ...$other_keys): Relay|int|false {}
/**
* Subscribes to the specified channels.
*
* @param array $channels
* @param callable $callback
* @return bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function subscribe(array $channels, callable $callback): bool {}
/**
* Unsubscribes from the given channels, or from all of them if none is given.
*
* @param array $channels
* @return bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function unsubscribe(array $channels = []): bool {}
/**
* Subscribes to the given patterns.
*
* @param array $patterns
* @param callable $callback
* @return bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function psubscribe(array $patterns, callable $callback): bool {}
/**
* Unsubscribes from the given patterns, or from all of them if none is given.
*
* @param array $patterns
* @return bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function punsubscribe(array $patterns = []): bool {}
/**
* Subscribes to the specified shard channels.
*
* @param array $channels
* @param callable $callback
* @return bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function ssubscribe(array $channels, callable $callback): bool {}
/**
* Unsubscribes from the given shard channels, or from all of them if none is given.
*
* @param array $channels
* @return bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function sunsubscribe(array $channels = []): bool {}
/**
* Alters the last access time of a key(s).
*
* @param array|string $key_or_array
* @param mixed $more_keys,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function touch(array|string $key_or_array, mixed ...$more_keys): Relay|int|false {}
/**
* A pipeline block is simply transmitted faster to the server (like `MULTI`), but without any guarantee of atomicity.
*
* @return Relay|bool
*/
#[Attributes\Local]
public function pipeline(): Relay|bool {}
/**
* Marks the start of a transaction block. Subsequent commands will be queued for atomic execution using EXEC.
*
* Accepts `Relay::MULTI` and `Relay::PIPELINE` modes.
*
* @param int $mode
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function multi(int $mode = 0): Relay|bool {}
/**
* Executes all previously queued commands in a transaction and restores the connection state to normal.
*
* @return Relay|array|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function exec(): Relay|array|bool {}
/**
* Wait for the synchronous replication of all the write
* commands sent in the context of the current connection.
*
* @param int $replicas
* @param int $timeout
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function wait(int $replicas, $timeout): Relay|int|false {}
/**
* Marks the given keys to be watched for conditional execution of a transaction.
*
* @param mixed $key
* @param mixed $other_keys,...
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function watch(mixed $key, mixed ...$other_keys): Relay|bool {}
/**
* Flushes all the previously watched keys for a transaction.
* If you call EXEC or DISCARD, there's no need to manually call UNWATCH.
*
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function unwatch(): Relay|bool {}
/**
* Flushes all previously queued commands in a transaction and restores the connection state to normal.
* If WATCH was used, DISCARD unwatches all keys watched by the connection.
*
* @return bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function discard(): bool {}
/**
* Get the server name as reported by the `HELLO` response.
*
* @return string|false
*/
#[Attributes\Local]
public function serverName(): string|false {}
/**
* Get the server version as reported by the `HELLO` response.
*
* @return string|false
*/
#[Attributes\Local]
public function serverVersion(): string|false {}
/**
* Get the mode Relay is currently in.
* `Relay::ATOMIC`, `Relay::PIPELINE` or `Relay::MULTI`.
*
* @param bool $masked
* @return int
*/
#[Attributes\Local]
public function getMode(bool $masked = false): int {}
/**
* Clear the accumulated sent and received bytes.
*
* @return void
*/
#[Attributes\Local]
public function clearBytes(): void {}
/**
* Scan the keyspace for matching keys.
*
* @param mixed $iterator
* @param mixed $match
* @param int $count
* @param string|null $type
* @return array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function scan(mixed &$iterator, mixed $match = null, int $count = 0, ?string $type = null): array|false {}
/**
* Iterates fields of Hash types and their associated values.
*
* @param mixed $key
* @param mixed $iterator
* @param mixed $match
* @param int $count
* @return array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function hscan(mixed $key, mixed &$iterator, mixed $match = null, int $count = 0): array|false {}
/**
* Iterates elements of Sets types.
*
* @param mixed $key
* @param mixed $iterator
* @param mixed $match
* @param int $count
* @return array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function sscan(mixed $key, mixed &$iterator, mixed $match = null, int $count = 0): array|false {}
/**
* Iterates elements of Sorted Set types and their associated scores.
*
* @param mixed $key
* @param mixed $iterator
* @param mixed $match
* @param int $count
* @return array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zscan(mixed $key, mixed &$iterator, mixed $match = null, int $count = 0): array|false {}
/**
* Returns all keys matching pattern.
*
* @param mixed $pattern
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function keys(mixed $pattern): Relay|array|false {}
/**
* Interact with Valkey's COMMANDLOG command.
*
* @param string $subcmd
* @param mixed $args...
* @return Relay|array|int|bool
*/
#[Attributes\ValkeyCommand]
public function commandlog(string $subcmd, mixed ...$args): Relay|array|int|bool {}
/**
* Interact with the Redis slowlog.
*
* @param string $operation
* @param string $extra_args,...
* @return Relay|array|int|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function slowlog(string $operation, string ...$extra_args): Relay|array|int|bool {}
/**
* Returns all the members of the set value stored at `$key`.
*
* @param mixed $set
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function smembers(mixed $set): Relay|array|false {}
/**
* Returns if `$member` is a member of the set stored at `$key`.
*
* @param mixed $set
* @param mixed $member
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function sismember(mixed $set, mixed $member): Relay|bool {}
/**
* Returns whether each member is a member of the set stored at `$key`.
*
* @param mixed $set
* @param mixed $members,...
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function smismember(mixed $set, mixed ...$members): Relay|array|false {}
/**
* Remove the specified members from the set stored at `$key`.
*
* @param mixed $set
* @param mixed $member
* @param mixed $members,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function srem(mixed $set, mixed $member, mixed ...$members): Relay|int|false {}
/**
* Add the specified members to the set stored at `$key`.
*
* @param mixed $set
* @param mixed $member
* @param mixed $members,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function sadd(mixed $set, mixed $member, mixed ...$members): Relay|int|false {}
/**
* Sort the elements in a list, set or sorted set.
*
* @param mixed $key
* @param array $options
* @return Relay|array|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function sort(mixed $key, array $options = []): Relay|array|int|false {}
/**
* Sort the elements in a list, set or sorted set. Read-only variant of SORT.
*
* @param mixed $key
* @param array $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function sort_ro(mixed $key, array $options = []): Relay|array|false {}
/**
* Move member from the set at source to the set at destination.
*
* @param mixed $srcset
* @param mixed $dstset
* @param mixed $member
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function smove(mixed $srcset, mixed $dstset, mixed $member): Relay|bool {}
/**
* Removes and returns one or more random members from the set value store at `$key`.
*
* @param mixed $set
* @param int $count
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function spop(mixed $set, int $count = 1): mixed {}
/**
* Returns one or multiple random members from a set.
*
* @param mixed $set
* @param int $count
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function srandmember(mixed $set, int $count = 1): mixed {}
/**
* Returns the set cardinality (number of elements) of the set stored at `$key`.
*
* @param mixed $key
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function scard(mixed $key): Relay|int|false {}
/**
* Execute a script management command.
*
* @param string $command
* @param string $args,...
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function script(string $command, string ...$args): mixed {}
/**
* Returns the length of the string value stored at `$key`.
*
* @param mixed $key
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function strlen(mixed $key): Relay|int|false {}
/**
* This command swaps two Redis databases,
* so that immediately all the clients connected to a given database
* will see the data of the other database, and the other way around.
*
* @param int $index1
* @param int $index2
* @return Relay|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function swapdb(int $index1, int $index2): Relay|bool {}
/**
* Returns the number of fields contained in the hash stored at `$key`.
*
* @param mixed $key
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function hlen(mixed $key): Relay|int|false {}
/**
* Returns the length of the list stored at `$key`.
*
* @param mixed $key
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function llen(mixed $key): Relay|int|false {}
/**
* Add an element to a vector set.
*
* @param mixed $key
* @param array $values
* @param mixed $element
* @param array|null $options
* @return Relay|int|false
*/
#[Attributes\RedisCommand]
public function vadd(mixed $key, array $values, mixed $element, ?array $options = null): Relay|int|false {}
/**
* Return the cardinality (number of elements) in a vector set.
*
* @param mixed $key
* @return Relay|int|false
*/
#[Attributes\RedisCommand]
public function vcard(mixed $key): Relay|int|false {}
/**
* Return the dimensionality of vectors in a vector set.
*
* @param mixed $key
* @return Relay|int|false
*/
#[Attributes\RedisCommand]
public function vdim(mixed $key): Relay|int|false {}
/**
* Get the embedding for a given vector set member.
*
* @param mixed $key
* @param mixed $element
* @param bool $raw
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function vemb(mixed $key, mixed $element, bool $raw = false): Relay|array|false {}
/**
* Get any attributes for a given vector set member.
*
* @param mixed $key
* @param mixed $element
* @param bool $raw
* @return Relay|array|string|false
*/
#[Attributes\RedisCommand]
public function vgetattr(mixed $key, mixed $element, bool $raw = false): Relay|array|string|false {}
/**
* Return metadata about a vector set.
*
* @param mixed $key
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function vinfo(mixed $key): Relay|array|false {}
/**
* Returns whether or not the element is a member of a vectorset.
*
* @param mixed $key
* @param mixed $element
* @return Relay|bool
*/
#[Attributes\RedisCommand]
public function vismember(mixed $key, mixed $element): Relay|bool {}
/**
* Get neighbors for a given vector element optionally withscores.
*
* @param mixed $key
* @param mixed $element
* @param bool $withscores
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function vlinks(mixed $key, mixed $element, bool $withscores): Relay|array|false {}
/**
* Get one or more random members from a vector set.
*
* @param mixed $key
* @param int $count
* @return Relay|array|string|false
*/
#[Attributes\RedisCommand]
public function vrandmember(mixed $key, int $count = 0): Relay|array|string|false {}
/**
* Get a lexicographical range of elements from a vector set.
*
* @param mixed $key
* @param string $min
* @param string $max
* @param int $count = 0
*/
#[Attributes\RedisCommand]
public function vrange(mixed $key, string $min, string $max, int $count = -1): Relay|array|false {}
/**
* Remove an element from a vector set.
*
* @param mixed $key
* @param mixed $element
* @return Relay|int|false
*/
#[Attributes\RedisCommand]
public function vrem(mixed $key, mixed $element): Relay|int|false {}
/**
* Set attributes for a given vector set member.
*
* @param mixed $key
* @param mixed $element
* @param array|string $attributes
* @return Relay|int|false
*/
#[Attributes\RedisCommand]
public function vsetattr(mixed $key, mixed $element, array|string $attributes): Relay|int|false {}
/**
* Do a similarity search on encodings or an element of a vector set.
*
* @param mixed $key
* @param mixed $member
* @param array|null $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function vsim(mixed $key, mixed $member, array|null $options = null): Relay|array|false {}
/**
* Acknowledge one or more IDs as having been processed by the consumer group.
*
* @param mixed $key
* @param string $group
* @param array $ids
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xack(mixed $key, string $group, array $ids): Relay|int|false {}
/**
* Awknowledge and delete one or more IDs in a stream.
*
* @param string $key
* @param string $group
* @param array $ids
* @param string|null $mode
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function xackdel(string $key, string $group, array $ids, ?string $mode = null): Relay|array|false {}
/**
* Append a message to a stream.
*
* @param string $key
* @param string $id
* @param int $maxlen
* @param bool $approx
* @param bool $nomkstream
* @return Relay|string|null|false
*/
public function xadd(
string $key,
string $id,
array $values,
int $maxlen = 0,
bool $approx = false,
bool $nomkstream = false
): Relay|string|null|false {}
/**
* Claim ownership of stream message(s).
*
* @param string $key
* @param string $group
* @param string $consumer
* @param int $min_idle
* @param array $ids
* @param array $options
* @return Relay|array|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xclaim(
string $key,
string $group,
string $consumer,
int $min_idle,
array $ids,
array $options
): Relay|array|bool {}
/**
* Automatically take ownership of stream message(s) by metrics.
*
* @param string $key
* @param string $group
* @param string $consumer
* @param int $min_idle
* @param string $start
* @param int $count
* @param bool $justid
* @return Relay|array|bool
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xautoclaim(
string $key,
string $group,
string $consumer,
int $min_idle,
string $start,
int $count = -1,
bool $justid = false
): Relay|bool|array {}
/**
* Get the length of a stream.
*
* @param string $key
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xlen(string $key): Relay|int|false {}
/**
* Perform utility operations having to do with consumer groups.
*
* @param string $operation
* @param mixed $key
* @param string $group
* @param string $id_or_consumer
* @param bool $mkstream
* @param int $entries_read
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xgroup(
string $operation,
mixed $key = null,
string $group = null,
string $id_or_consumer = null,
bool $mkstream = false,
int $entries_read = -2
): mixed {}
/**
* Remove one or more specific IDs from a stream.
*
* @param string $key
* @param array $ids
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xdel(string $key, array $ids): Relay|int|false {}
/**
* Remove one or more IDs from a stream with optional mode argument.
*
* @param string $key
* @param array $ids
* @param string|null $mode
* @return Relay|array|false
*/
#[Attributes\RedisCommand]
public function xdelex(string $key, array $ids, ?string $mode = null): Relay|array|false {}
/**
* Retrieve information about a stream key.
*
* @param string $operation
* @param string|null $arg1
* @param string|null $arg2
* @param int $count
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xinfo(string $operation, ?string $arg1 = null, ?string $arg2 = null, int $count = -1): mixed {}
/**
* Query pending entries in a stream.
*
* @param string $key
* @param string $group
* @param string|null $start
* @param string|null $end
* @param int $count
* @param string|null $consumer
* @param int $idle
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xpending(
string $key,
string $group,
?string $start = null,
?string $end = null,
int $count = -1,
?string $consumer = null,
int $idle = 0
): Relay|array|false {}
/**
* Lists elements in a stream.
*
* @param mixed $key
* @param string $start
* @param string $end
* @param int $count = -1
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xrange(mixed $key, string $start, string $end, int $count = -1): Relay|array|false {}
/**
* Get a range of entries from a STREAM ke in reverse chronological order.
*
* @param string $key
* @param string $end
* @param string $start
* @param int $count
* @return Relay|array|bool
*/
#[Attributes\RedisCommand]
public function xrevrange(string $key, string $end, string $start, int $count = -1): Relay|array|bool {}
/**
* Read messages from a stream.
*
* @param array $streams
* @param int $count
* @param int $block
* @return Relay|array|bool|null
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xread(array $streams, int $count = -1, int $block = -1): Relay|array|bool|null {}
/**
* Read messages from a stream using a consumer group.
*
* @param string $group
* @param string $consumer
* @param array $streams
* @param int $count
* @param int $block
* @return Relay|array|bool|null
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xreadgroup(
string $group,
string $consumer,
array $streams,
int $count = 1,
int $block = 1
): Relay|array|bool|null {}
/**
* Truncate a STREAM key in various ways.
*
* @param string $key
* @param string $threshold
* @param bool $approx
* @param bool $minid
* @param int $limit
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function xtrim(
string $key,
string $threshold,
bool $approx = false,
bool $minid = false,
int $limit = -1
): Relay|int|false {}
/**
* Adds all the specified members with the specified scores to the sorted set stored at key.
*
* @param mixed $key
* @param mixed $args,...
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zadd(mixed $key, mixed ...$args): mixed {}
/**
* When called with just the key argument, return a random element from the sorted set value stored at key.
* If the provided count argument is positive, return an array of distinct elements.
*
* @param mixed $key
* @param array|null $options
* @return mixed
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zrandmember(mixed $key, ?array $options = null): mixed {}
/**
* Returns the specified range of elements in the sorted set stored at key.
*
* @param mixed $key
* @param string|int $start
* @param string|int $end
* @param mixed $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function zrange(mixed $key, string|int $start, string|int $end, mixed $options = null): Relay|array|false {}
/**
* Returns the specified range of elements in the sorted set stored at key.
*
* @param mixed $key
* @param int $start
* @param int $end
* @param mixed $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached, Attributes\Deprecated]
public function zrevrange(mixed $key, int $start, int $end, mixed $options = null): Relay|array|false {}
/**
* Returns all the elements in the sorted set at key with a score between
* min and max (including elements with score equal to min or max).
*
* @param mixed $key
* @param mixed $start
* @param mixed $end
* @param mixed $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached, Attributes\Deprecated]
public function zrangebyscore(mixed $key, mixed $start, mixed $end, mixed $options = null): Relay|array|false {}
/**
* Returns all the elements in the sorted set at key with a score between
* max and min (including elements with score equal to max or min).
*
* @param mixed $key
* @param mixed $start
* @param mixed $end
* @param mixed $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached, Attributes\Deprecated]
public function zrevrangebyscore(mixed $key, mixed $start, mixed $end, mixed $options = null): Relay|array|false {}
/**
* Returns all the elements in the sorted set at key with a score between
* max and min (including elements with score equal to max or min).
*
* @param mixed $dst
* @param mixed $src
* @param mixed $start
* @param mixed $end
* @param mixed $options
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zrangestore(mixed $dst, mixed $src, mixed $start, mixed $end, mixed $options = null): Relay|int|false {}
/**
* When all the elements in a sorted set are inserted with the same score,
* in order to force lexicographical ordering, this command returns all
* the elements in the sorted set at key with a value between min and max.
*
* @param mixed $key
* @param mixed $min
* @param mixed $max
* @param int $offset
* @param int $count
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function zrangebylex(mixed $key, mixed $min, mixed $max, int $offset = -1, int $count = -1): Relay|array|false {}
/**
* When all the elements in a sorted set are inserted with the same score,
* in order to force lexicographical ordering, this command returns all
* the elements in the sorted set at key with a value between max and min.
*
* @param mixed $key
* @param mixed $max
* @param mixed $min
* @param int $offset
* @param int $count
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Deprecated]
public function zrevrangebylex(mixed $key, mixed $max, mixed $min, int $offset = -1, int $count = -1): Relay|array|false {}
/**
* Returns the rank of member in the sorted set stored at key, with the scores
* ordered from low to high. The rank (or index) is 0-based, which means
* that the member with the lowest score has rank 0.
*
* @param mixed $key
* @param mixed $rank
* @param bool $withscore
* @return Relay|array|int|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zrank(mixed $key, mixed $rank, bool $withscore = false): Relay|array|int|null|false {}
/**
* Returns the rank of member in the sorted set stored at key, with the scores
* ordered from high to low. The rank (or index) is 0-based, which means
* that the member with the highest score has rank 0.
*
* @param mixed $key
* @param mixed $rank
* @param bool $withscore
* @return Relay|array|int|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zrevrank(mixed $key, mixed $rank, bool $withscore = false): Relay|array|int|null|false {}
/**
* Removes the specified members from the sorted set stored at key.
* Non existing members are ignored.
*
* @param mixed $key
* @param mixed $args,...
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zrem(mixed $key, mixed ...$args): Relay|int|false {}
/**
* When all the elements in a sorted set are inserted with the same score,
* in order to force lexicographical ordering, this command removes all
* elements in the sorted set stored at key between the
* lexicographical range specified by min and max.
*
* @param mixed $key
* @param mixed $min
* @param mixed $max
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zremrangebylex(mixed $key, mixed $min, mixed $max): Relay|int|false {}
/**
* Removes all elements in the sorted set stored at key with rank between
* start and stop. Both start and stop are 0 -based indexes with 0 being
* the element with the lowest score.
*
* @param mixed $key
* @param int $start
* @param int $end
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zremrangebyrank(mixed $key, int $start, int $end): Relay|int|false {}
/**
* Removes all elements in the sorted set stored at key with
* a score between min and max (inclusive).
*
* @param mixed $key
* @param mixed $min
* @param mixed $max
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zremrangebyscore(mixed $key, mixed $min, mixed $max): Relay|int|false {}
/**
* Returns the sorted set cardinality (number of elements) of the sorted set stored at key.
*
* @param mixed $key
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand, Attributes\Cached]
public function zcard(mixed $key): Relay|int|false {}
/**
* Returns the number of elements in the sorted set at key with a score between min and max.
*
* @param mixed $key
* @param mixed $min
* @param mixed $max
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zcount(mixed $key, mixed $min, mixed $max): Relay|int|false {}
/**
* This command is similar to ZDIFFSTORE, but instead of storing the
* resulting sorted set, it is returned to the client.
*
* @param array $keys
* @param array $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zdiff(array $keys, ?array $options = null): Relay|array|false {}
/**
* Computes the difference between the first and all successive
* input sorted sets and stores the result in destination.
*
* @param mixed $dst
* @param array $keys
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zdiffstore(mixed $dst, array $keys): Relay|int|false {}
/**
* Increments the score of member in the sorted set stored at key by increment.
*
* @param mixed $key
* @param float $score
* @param mixed $mem
* @return Relay|float|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zincrby(mixed $key, float $score, mixed $mem): Relay|float|false {}
/**
* When all the elements in a sorted set are inserted with the same score,
* in order to force lexicographical ordering, this command returns the
* number of elements in the sorted set at key with a value between min and max.
*
* @param mixed $key
* @param mixed $min
* @param mixed $max
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zlexcount(mixed $key, mixed $min, mixed $max): Relay|int|false {}
/**
* Returns the scores associated with the specified members in the sorted set stored at key.
*
* @param mixed $key
* @param mixed $mems,...
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zmscore(mixed $key, mixed ...$mems): Relay|array|false {}
/**
* Returns the score of member in the sorted set at key.
*
* @param mixed $key
* @param mixed $member
* @return Relay|float|null|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zscore(mixed $key, mixed $member): Relay|float|null|false {}
/**
* This command is similar to ZINTERSTORE, but instead of storing
* the resulting sorted set, it is returned to the client.
*
* @param array $keys
* @param array $weights
* @param mixed $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zinter(array $keys, ?array $weights = null, mixed $options = null): Relay|array|false {}
/**
* Intersect multiple sorted sets and return the cardinality of the result.
*
* @param array $keys
* @param int $limit
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zintercard(array $keys, int $limit = -1): Relay|int|false {}
/**
* Computes the intersection of numkeys sorted sets given by the
* specified keys, and stores the result in destination.
*
* @param mixed $dst
* @param array $keys
* @param array $weights
* @param mixed $options
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zinterstore(mixed $dst, array $keys, ?array $weights = null, mixed $options = null): Relay|int|false {}
/**
* This command is similar to ZUNIONSTORE, but instead of storing
* the resulting sorted set, it is returned to the client.
*
* @param array $keys
* @param array $weights
* @param mixed $options
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zunion(array $keys, ?array $weights = null, mixed $options = null): Relay|array|false {}
/**
* Computes the union of numkeys sorted sets given by the
* specified keys, and stores the result in destination.
*
* @param mixed $dst
* @param array $keys
* @param array $weights
* @param mixed $options
* @return Relay|int|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zunionstore(mixed $dst, array $keys, ?array $weights = null, mixed $options = null): Relay|int|false {}
/**
* Removes and returns up to count members with the lowest
* scores in the sorted set stored at key.
*
* @param mixed $key
* @param int $count
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zpopmin(mixed $key, int $count = 1): Relay|array|false {}
/**
* Removes and returns up to count members with the highest
* scores in the sorted set stored at key.
*
* @param mixed $key
* @param int $count
* @return Relay|array|false
*/
#[Attributes\RedisCommand, Attributes\ValkeyCommand]
public function zpopmax(mixed $key, int $count = 1): Relay|array|false {}
/**
* Initialize a Redis CMS (Count-Min Sketch) by dimensions.
*
* @param mixed $key
* @param int $width
* @param int $depth
* @return Relay|bool
*/
#[Attributes\RedisCommand]
public function cmsInitByDim(mixed $key, int $width, int $depth): Relay|bool {}
/**
* Initialize a Redis CMS (Count-Min Sketch) by desired probabilities.
*
* @param mixed $key
* @param float $error
* @param float $probability
* @return Relay|bool
*/
#[Attributes\RedisCommand]
public function cmsInitByProb(mixed $key, float $error, float $probability): Relay|bool {}
/**
* Get information about a Count-Min Sketch key.
*
* @param mixed $key
* @return Relay|array
*/
#[Attributes\RedisCommand]
public function cmsInfo(mixed $key): Relay|array|false {}
/**
* Increment one or more fields in a Count-Min Sketch key.
*
* @param mixed $key
* @param mixed $field
* @param int $value
* @param mixed $fields_and_falues,...
* @return Relay|array
*/
#[Attributes\RedisCommand]
public function cmsIncrBy(mixed $key, mixed $field, int $value, ...$fields_and_falues): Relay|array|false {}
/**
* Merge one or more Count-Min Sketch keys with optional weights.
*
* @param mixed $dstkey
* @param array $keys
* @param array $weights = []
*/
public function cmsMerge(mixed $dstkey, array $keys, array $weights = []): Relay|bool {}
/**
* Query a Count-Min Sketch key.
*
* @param mixed $key
* @param mixed $fields,...
* @return Relay|array
*/
#[Attributes\RedisCommand]
public function cmsQuery(mixed $key, ...$fields): Relay|array|false {}
/**
* Returns keys cached in runtime memory.
*
* @internal Temporary debug helper. Do not use.
* @return mixed
*/
#[Attributes\Local]
public function _getKeys() {}
/**
* Returns whether a key is tracked in memory.
*
* This can mean the entire key is cached in-memory or that we are tracking
* the existence or length of the key.
*
* @param string $key
* @return bool
*/
#[Attributes\Local]
public function isTracked(string $key): bool {}
/**
* Returns information about the license.
*
* @return array
*/
#[Attributes\Local]
public static function license(): array {}
}