Files
phpredis/redis_cluster.stub.php
michael-grunder 286fa63064 Implement VADD command
This is for Redis 8.0's vector sets.

The command itself can be quite complex with all of the various options but
pretty simple using all defaults.

```php
$redis->vadd('myvec', [3.14, 2.17], 'myelement');
```

The implementation takes a default argument `$options` which can be an array in
order to specify the myriad of other knobs users can send. We just do a bit of
validation on inputs (e.g. certain numeric options must be positive) and make
sure the command is constructed in a valid way (e.g. REDUCE <dim> must come
before the floating point values).

By default we deliver `FP32` blobs but allow the user to send `VALUES` in the
options array which will cause PhpRedis to send N individual values. Sending
values is slower but might be nice for debugging (e.g. watching monitor)

See #2543
2025-07-31 00:57:28 -07:00

1290 lines
35 KiB
PHP

<?php
/**
* @generate-function-entries
* @generate-legacy-arginfo
* @generate-class-entries
*/
class RedisCluster {
/**
*
* @var int
* @cvalue REDIS_OPT_FAILOVER
*
*/
public const OPT_SLAVE_FAILOVER = UNKNOWN;
/**
*
* @var int
* @cvalue REDIS_FAILOVER_NONE
*
*/
public const FAILOVER_NONE = UNKNOWN;
/**
*
* @var int
* @cvalue REDIS_FAILOVER_ERROR
*
*/
public const FAILOVER_ERROR = UNKNOWN;
/**
*
* @var int
* @cvalue REDIS_FAILOVER_DISTRIBUTE
*
*/
public const FAILOVER_DISTRIBUTE = UNKNOWN;
/**
*
* @var int
* @cvalue REDIS_FAILOVER_DISTRIBUTE_SLAVES
*
*/
public const FAILOVER_DISTRIBUTE_SLAVES = UNKNOWN;
public function __construct(string|null $name, ?array $seeds = null, int|float $timeout = 0, int|float $read_timeout = 0, bool $persistent = false, #[\SensitiveParameter] mixed $auth = null, ?array $context = null);
/**
* @see Redis::_compress()
*/
public function _compress(string $value): string;
/**
* @see Redis::_uncompress()
*/
public function _uncompress(string $value): string;
/**
* @see Redis::_serialize()
*/
public function _serialize(mixed $value): bool|string;
/**
* @see Redis::_unserialize()
*/
public function _unserialize(string $value): mixed;
/**
* @see Redis::_pack()
*/
public function _pack(mixed $value): string;
/**
* @see Redis::_unpack()
*/
public function _unpack(string $value): mixed;
/**
* @see Redis::_prefix()
*/
public function _prefix(string $key): bool|string;
public function _masters(): array;
public function _redir(): string|null;
/**
* @see Redis::acl
*/
public function acl(string|array $key_or_address, string $subcmd, string ...$args): mixed;
/**
* @see Redis::append()
*/
public function append(string $key, mixed $value): RedisCluster|bool|int;
/**
* @see Redis::bgrewriteaof
*/
public function bgrewriteaof(string|array $key_or_address): RedisCluster|bool;
public function waitaof(string|array $key_or_address, int $numlocal,
int $numreplicas, int $timeout): RedisCluster|array|false;
/**
* @see Redis::bgsave
*/
public function bgsave(string|array $key_or_address): RedisCluster|bool;
/**
* @see Redis::bitcount
*/
public function bitcount(string $key, int $start = 0, int $end = -1, bool $bybit = false): RedisCluster|bool|int;
/**
* @see Redis::bitop
*/
public function bitop(string $operation, string $deskey, string $srckey, string ...$otherkeys): RedisCluster|bool|int;
/**
* Return the position of the first bit set to 0 or 1 in a string.
*
* @see https://https://redis.io/commands/bitpos/
*
* @param string $key The key to check (must be a string)
* @param bool $bit Whether to look for an unset (0) or set (1) bit.
* @param int $start Where in the string to start looking.
* @param int $end Where in the string to stop looking.
* @param bool $bybit If true, Redis will treat $start and $end as BIT values and not bytes, so if start
* was 0 and end was 2, Redis would only search the first two bits.
*/
public function bitpos(string $key, bool $bit, int $start = 0, int $end = -1, bool $bybit = false): RedisCluster|int|false;
/**
* See Redis::blpop()
*/
public function blpop(string|array $key, string|float|int $timeout_or_key, mixed ...$extra_args): RedisCluster|array|null|false;
/**
* See Redis::brpop()
*/
public function brpop(string|array $key, string|float|int $timeout_or_key, mixed ...$extra_args): RedisCluster|array|null|false;
/**
* See Redis::brpoplpush()
*/
public function brpoplpush(string $srckey, string $deskey, int $timeout): mixed;
/**
* Move an element from one list into another.
*
* @see Redis::lmove
*/
public function lmove(string $src, string $dst, string $wherefrom, string $whereto): Redis|string|false;
/**
* Move an element from one list to another, blocking up to a timeout until an element is available.
*
* @see Redis::blmove
*
*/
public function blmove(string $src, string $dst, string $wherefrom, string $whereto, float $timeout): Redis|string|false;
/**
* @see Redis::bzpopmax
*/
public function bzpopmax(string|array $key, string|int $timeout_or_key, mixed ...$extra_args): array;
/**
* @see Redis::bzpopmin
*/
public function bzpopmin(string|array $key, string|int $timeout_or_key, mixed ...$extra_args): array;
/**
* @see Redis::bzmpop
*/
public function bzmpop(float $timeout, array $keys, string $from, int $count = 1): RedisCluster|array|null|false;
/**
* @see Redis::zmpop
*/
public function zmpop(array $keys, string $from, int $count = 1): RedisCluster|array|null|false;
/**
* @see Redis::blmpop()
*/
public function blmpop(float $timeout, array $keys, string $from, int $count = 1): RedisCluster|array|null|false;
/**
* @see Redis::lmpop()
*/
public function lmpop(array $keys, string $from, int $count = 1): RedisCluster|array|null|false;
/**
* @see Redis::clearlasterror()
*/
public function clearlasterror(): bool;
/**
* @see Redis::client
*/
public function client(string|array $key_or_address, string $subcommand, ?string $arg = null): array|string|bool;
/**
* @see Redis::close
*/
public function close(): bool;
/**
* @see Redis::cluster
*/
public function cluster(string|array $key_or_address, string $command, mixed ...$extra_args): mixed;
/**
* @see Redis::command
*/
public function command(mixed ...$extra_args): mixed;
/**
* @see Redis::config()
*/
public function config(string|array $key_or_address, string $subcommand, mixed ...$extra_args): mixed;
/**
* @see Redis::dbsize()
*/
public function dbsize(string|array $key_or_address): RedisCluster|int;
/**
* @see https://redis.io/commands/copy
*/
public function copy(string $src, string $dst, ?array $options = null): RedisCluster|bool;
/**
* @see Redis::decr()
*/
public function decr(string $key, int $by = 1): RedisCluster|int|false;
/**
* @see Redis::decrby()
*/
public function decrby(string $key, int $value): RedisCluster|int|false;
/**
* @see Redis::decrbyfloat
*/
public function decrbyfloat(string $key, float $value): float;
/**
* @see Redis::del()
*/
public function del(array|string $key, string ...$other_keys): RedisCluster|int|false;
/**
* @see Redis::discard
*/
public function discard(): bool;
/**
* @see Redis::dump
*/
public function dump(string $key): RedisCluster|string|false;
/**
* @see Redis::echo()
*/
public function echo(string|array $key_or_address, string $msg): RedisCluster|string|false;
/**
* @see Redis::eval
*/
public function eval(string $script, array $args = [], int $num_keys = 0): mixed;
/**
* @see Redis::eval_ro
*/
public function eval_ro(string $script, array $args = [], int $num_keys = 0): mixed;
/**
* @see Redis::evalsha
*/
public function evalsha(string $script_sha, array $args = [], int $num_keys = 0): mixed;
/**
* @see Redis::evalsha_ro
*/
public function evalsha_ro(string $script_sha, array $args = [], int $num_keys = 0): mixed;
/**
* @see Redis::exec()
*/
public function exec(): array|false;
/**
* @see Redis::exists
*/
public function exists(mixed $key, mixed ...$other_keys): RedisCluster|int|bool;
/**
* @see Redis::touch()
*/
public function touch(mixed $key, mixed ...$other_keys): RedisCluster|int|bool;
/**
* @see Redis::expire
*/
public function expire(string $key, int $timeout, ?string $mode = null): RedisCluster|bool;
/**
* @see Redis::expireat
*/
public function expireat(string $key, int $timestamp, ?string $mode = null): RedisCluster|bool;
/**
* @see Redis::expiretime()
*/
public function expiretime(string $key): RedisCluster|int|false;
/**
* @see Redis::pexpiretime()
*/
public function pexpiretime(string $key): RedisCluster|int|false;
/**
* @see Redis::flushall
*/
public function flushall(string|array $key_or_address, bool $async = false): RedisCluster|bool;
/**
* @see Redis::flushdb
*/
public function flushdb(string|array $key_or_address, bool $async = false): RedisCluster|bool;
/**
* @see Redis::geoadd
*/
public function geoadd(string $key, float $lng, float $lat, string $member, mixed ...$other_triples_and_options): RedisCluster|int|false;
/**
* @see Redis::geodist
*/
public function geodist(string $key, string $src, string $dest, ?string $unit = null): RedisCluster|float|false;
/**
* @see Redis::geohash
*/
public function geohash(string $key, string $member, string ...$other_members): RedisCluster|array|false;
/**
* @see Redis::geopos
*/
public function geopos(string $key, string $member, string ...$other_members): RedisCluster|array|false;
/**
* @see Redis::georadius
*/
public function georadius(string $key, float $lng, float $lat, float $radius, string $unit, array $options = []): mixed;
/**
* @see Redis::georadius_ro
*/
public function georadius_ro(string $key, float $lng, float $lat, float $radius, string $unit, array $options = []): mixed;
/**
* @see Redis::georadiusbymember
*/
public function georadiusbymember(string $key, string $member, float $radius, string $unit, array $options = []): mixed;
/**
* @see Redis::georadiusbymember_ro
*/
public function georadiusbymember_ro(string $key, string $member, float $radius, string $unit, array $options = []): mixed;
/**
* @see https://redis.io/commands/geosearch
*/
public function geosearch(string $key, array|string $position, array|int|float $shape, string $unit, array $options = []): RedisCluster|array;
/**
* @see https://redis.io/commands/geosearchstore
*/
public function geosearchstore(string $dst, string $src, array|string $position, array|int|float $shape, string $unit, array $options = []): RedisCluster|array|int|false;
/**
* @see Redis::get
*/
public function get(string $key): mixed;
/**
* @see Redis::getdel
*/
public function getdel(string $key): mixed;
/**
* @see Redis::getWithMeta
*/
public function getWithMeta(string $key): RedisCluster|array|false;
/**
* @see Redis::getEx
*/
public function getex(string $key, array $options = []): RedisCluster|string|false;
/**
* @see Redis::getbit
*/
public function getbit(string $key, int $value): RedisCluster|int|false;
/**
* @see Redis::getlasterror
*/
public function getlasterror(): string|null;
/**
* @see Redis::getmode
*/
public function getmode(): int;
/**
* @see Redis::getoption
*/
public function getoption(int $option): mixed;
/**
* @see Redis::getrange
*/
public function getrange(string $key, int $start, int $end): RedisCluster|string|false;
/**
* @see Redis::lcs
*/
public function lcs(string $key1, string $key2, ?array $options = null): RedisCluster|string|array|int|false;
/**
* @see Redis::getset
*/
public function getset(string $key, mixed $value): RedisCluster|string|bool;
/**
* @see Redis::gettransferredbytes
*/
public function gettransferredbytes(): array|false;
/**
* @see Redis::cleartransferredbytes
*/
public function cleartransferredbytes(): void;
/**
* @see Redis::hdel
*/
public function hdel(string $key, string $member, string ...$other_members): RedisCluster|int|false;
/**
* @see Redis::hexists
*/
public function hexists(string $key, string $member): RedisCluster|bool;
/**
* @see Redis::hget
*/
public function hget(string $key, string $member): mixed;
/**
* @see Redis::hgetall
*/
public function hgetall(string $key): RedisCluster|array|false;
/**
* @see Redis::hincrby
*/
public function hincrby(string $key, string $member, int $value): RedisCluster|int|false;
/**
* @see Redis::hincrbyfloat
*/
public function hincrbyfloat(string $key, string $member, float $value): RedisCluster|float|false;
/**
* @see Redis::hkeys
*/
public function hkeys(string $key): RedisCluster|array|false;
/**
* @see Redis::hlen
*/
public function hlen(string $key): RedisCluster|int|false;
/**
* @see Redis::hmget
*/
public function hmget(string $key, array $keys): RedisCluster|array|false;
/**
* @see Redis::hgetex
*/
public function hgetex(string $key, array $fields, string|array|null $expiry = null): RedisCluster|array|false;
/**
* @see Redis::hsetex
*/
public function hsetex(string $key, array $fields, ?array $expiry = null): RedisCluster|int|false;
/**
* @see Redis::hgetdel
*/
public function hgetdel(string $key, array $fields): RedisCluster|array|false;
/**
* @see Redis::hmset
*/
public function hmset(string $key, array $key_values): RedisCluster|bool;
/**
* @see Redis::hscan
*/
public function hscan(string $key, null|int|string &$iterator, ?string $pattern = null, int $count = 0): array|bool;
/**
* @see Redis::expiremember
*/
public function expiremember(string $key, string $field, int $ttl, ?string $unit = null): Redis|int|false;
/**
* @see Redis::expirememberat
*/
public function expirememberat(string $key, string $field, int $timestamp): Redis|int|false;
/**
* @see https://redis.io/commands/hrandfield
*/
public function hrandfield(string $key, ?array $options = null): RedisCluster|string|array;
/**
* @see Redis::hset
*/
public function hset(string $key, string $member, mixed $value): RedisCluster|int|false;
/**
* @see Redis::hsetnx
*/
public function hsetnx(string $key, string $member, mixed $value): RedisCluster|bool;
/**
* @see Redis::hstrlen
*/
public function hstrlen(string $key, string $field): RedisCluster|int|false;
/**
* @see Redis::hexpire
*/
public function hexpire(string $key, int $ttl, array $fields,
?string $mode = NULL): RedisCluster|array|false;
/**
* @see Redis::hpexpire
*/
public function hpexpire(string $key, int $ttl, array $fields,
?string $mode = NULL): RedisCluster|array|false;
/**
* @see Redis::hexpireat
*/
public function hexpireat(string $key, int $time, array $fields,
?string $mode = NULL): RedisCluster|array|false;
/**
* @see Redis::hpexpireat
*/
public function hpexpireat(string $key, int $mstime, array $fields,
?string $mode = NULL): RedisCluster|array|false;
/**
* @see Redis::httl
*/
public function httl(string $key, array $fields): RedisCluster|array|false;
/**
* @see Redis::hpttl
*/
public function hpttl(string $key, array $fields): RedisCluster|array|false;
/**
* @see Redis::hexpiretime
*/
public function hexpiretime(string $key, array $fields): RedisCluster|array|false;
/**
* @see Redis::hpexpiretime
*/
public function hpexpiretime(string $key, array $fields): RedisCluster|array|false;
/**
* @see Redis::hpexpiretime
*/
public function hpersist(string $key, array $fields): RedisCluster|array|false;
/**
* @see Redis::hvals
*/
public function hvals(string $key): RedisCluster|array|false;
/**
* @see Redis::incr
*/
public function incr(string $key, int $by = 1): RedisCluster|int|false;
/**
* @see Redis::incrby
*/
public function incrby(string $key, int $value): RedisCluster|int|false;
/**
* @see Redis::incrbyfloat
*/
public function incrbyfloat(string $key, float $value): RedisCluster|float|false;
/**
* Retrieve information about the connected redis-server. If no arguments are passed to
* this function, redis will return every info field. Alternatively you may pass a specific
* section you want returned (e.g. 'server', or 'memory') to receive only information pertaining
* to that section.
*
* If connected to Redis server >= 7.0.0 you may pass multiple optional sections.
*
* @see https://redis.io/commands/info/
*
* @param string|array $key_or_address Either a key name or array with host and port indicating
* which cluster node we want to send the command to.
* @param string $sections Optional section(s) you wish Redis server to return.
*
* @return RedisCluster|array|false
*/
public function info(string|array $key_or_address, string ...$sections): RedisCluster|array|false;
/**
* @see Redis::keys
*/
public function keys(string $pattern): RedisCluster|array|false;
/**
* @see Redis::lastsave
*/
public function lastsave(string|array $key_or_address): RedisCluster|int|false;
/**
* @see Redis::lget
*/
public function lget(string $key, int $index): RedisCluster|string|bool;
/**
* @see Redis::lindex
*/
public function lindex(string $key, int $index): mixed;
/**
* @see Redis::linsert
*/
public function linsert(string $key, string $pos, mixed $pivot, mixed $value): RedisCluster|int|false;
/**
* @see Redis::llen
*/
public function llen(string $key): RedisCluster|int|bool;
/**
* @see Redis::lpop
*/
public function lpop(string $key, int $count = 0): RedisCluster|bool|string|array;
/**
* @see Redis::lpos
*/
public function lpos(string $key, mixed $value, ?array $options = null): Redis|null|bool|int|array;
/**
* @see Redis::lpush
*/
public function lpush(string $key, mixed $value, mixed ...$other_values): RedisCluster|int|bool;
/**
* @see Redis::lpushx
*/
public function lpushx(string $key, mixed $value): RedisCluster|int|bool;
/**
* @see Redis::lrange
*/
public function lrange(string $key, int $start, int $end): RedisCluster|array|false;
/**
* @see Redis::lrem
*/
public function lrem(string $key, mixed $value, int $count = 0): RedisCluster|int|bool;
/**
* @see Redis::lset
*/
public function lset(string $key, int $index, mixed $value): RedisCluster|bool;
/**
* @see Redis::ltrim
*/
public function ltrim(string $key, int $start, int $end): RedisCluster|bool;
/**
* @see Redis::mget
*/
public function mget(array $keys): RedisCluster|array|false;
/**
* @see Redis::mset
*/
public function mset(array $key_values): RedisCluster|bool;
/**
* @see Redis::msetnx
*/
public function msetnx(array $key_values): RedisCluster|array|false;
/* We only support Redis::MULTI in RedisCluster but take the argument
so we can test MULTI..EXEC with RedisTest.php and in the event
we add pipeline support in the future. */
public function multi(int $value = Redis::MULTI): RedisCluster|bool;
/**
* @see Redis::object
*/
public function object(string $subcommand, string $key): RedisCluster|int|string|false;
/**
* @see Redis::persist
*/
public function persist(string $key): RedisCluster|bool;
/**
* @see Redis::pexpire
*/
public function pexpire(string $key, int $timeout, ?string $mode = null): RedisCluster|bool;
/**
* @see Redis::pexpireat
*/
public function pexpireat(string $key, int $timestamp, ?string $mode = null): RedisCluster|bool;
/**
* @see Redis::pfadd()
*/
public function pfadd(string $key, array $elements): RedisCluster|bool;
/**
* @see Redis::pfcount()
*/
public function pfcount(string $key): RedisCluster|int|false;
/**
* @see Redis::pfmerge()
*/
public function pfmerge(string $key, array $keys): RedisCluster|bool;
/**
* PING an instance in the redis cluster.
*
* @see Redis::ping()
*
* @param string|array $key_or_address Either a key name or a two element array with host and
* address, informing RedisCluster which node to ping.
*
* @param string $message An optional message to send.
*
* @return mixed This method always returns `true` if no message was sent, and the message itself
* if one was.
*/
public function ping(string|array $key_or_address, ?string $message = null): mixed;
/**
* @see Redis::psetex
*/
public function psetex(string $key, int $timeout, string $value): RedisCluster|bool;
/**
* @see Redis::psubscribe
*/
public function psubscribe(array $patterns, callable $callback): void;
/**
* @see Redis::pttl
*/
public function pttl(string $key): RedisCluster|int|false;
/**
* @see Redis::publish
*/
public function publish(string $channel, string $message): RedisCluster|bool|int;
/**
* @see Redis::pubsub
*/
public function pubsub(string|array $key_or_address, string ...$values): mixed;
/**
* @see Redis::punsubscribe
*/
public function punsubscribe(string $pattern, string ...$other_patterns): bool|array;
/**
* @see Redis::randomkey
*/
public function randomkey(string|array $key_or_address): RedisCluster|bool|string;
/**
* @see Redis::rawcommand
*/
public function rawcommand(string|array $key_or_address, string $command, mixed ...$args): mixed;
/**
* @see Redis::rename
*/
public function rename(string $key_src, string $key_dst): RedisCluster|bool;
/**
* @see Redis::renamenx
*/
public function renamenx(string $key, string $newkey): RedisCluster|bool;
/**
* @see Redis::restore
*/
public function restore(string $key, int $timeout, string $value, ?array $options = null): RedisCluster|bool;
/**
* @see Redis::role
*/
public function role(string|array $key_or_address): mixed;
/**
* @see Redis::rpop()
*/
public function rpop(string $key, int $count = 0): RedisCluster|bool|string|array;
/**
* @see Redis::rpoplpush()
*/
public function rpoplpush(string $src, string $dst): RedisCluster|bool|string;
/**
* @see Redis::rpush
*/
public function rpush(string $key, mixed ...$elements): RedisCluster|int|false;
/**
* @see Redis::rpushx
*/
public function rpushx(string $key, string $value): RedisCluster|bool|int;
/**
* @see Redis::sadd()
*/
public function sadd(string $key, mixed $value, mixed ...$other_values): RedisCluster|int|false;
/**
* @see Redis::saddarray()
*/
public function saddarray(string $key, array $values): RedisCluster|bool|int;
/**
* @see Redis::save
*/
public function save(string|array $key_or_address): RedisCluster|bool;
/**
* @see Redis::scan
*/
public function scan(null|int|string &$iterator, string|array $key_or_address, ?string $pattern = null, int $count = 0): bool|array;
/**
* @see Redis::scard
*/
public function scard(string $key): RedisCluster|int|false;
/**
* @see Redis::script
*/
public function script(string|array $key_or_address, mixed ...$args): mixed;
/**
* @see Redis::sdiff()
*/
public function sdiff(string $key, string ...$other_keys): RedisCluster|array|false;
/**
* @see Redis::sdiffstore()
*/
public function sdiffstore(string $dst, string $key, string ...$other_keys): RedisCluster|int|false;
/**
* @see https://redis.io/commands/set
*/
public function set(string $key, mixed $value, mixed $options = null): RedisCluster|string|bool;
/**
* @see Redis::setbit
*/
public function setbit(string $key, int $offset, bool $onoff): RedisCluster|int|false;
/**
* @see Redis::setex
*/
public function setex(string $key, int $expire, mixed $value): RedisCluster|bool;
/**
* @see Redis::setnx
*/
public function setnx(string $key, mixed $value): RedisCluster|bool;
/**
* @see Redis::setoption
*/
public function setoption(int $option, mixed $value): bool;
/**
* @see Redis::setrange
*/
public function setrange(string $key, int $offset, string $value): RedisCluster|int|false;
/**
* @see Redis::sinter()
*/
public function sinter(array|string $key, string ...$other_keys): RedisCluster|array|false;
/**
* @see Redis::sintercard
*/
public function sintercard(array $keys, int $limit = -1): RedisCluster|int|false;
/**
* @see Redis::sinterstore()
*/
public function sinterstore(array|string $key, string ...$other_keys): RedisCluster|int|false;
/**
* @see Redis::sismember
*/
public function sismember(string $key, mixed $value): RedisCluster|bool;
/**
* @see Redis::smismember
*/
public function smismember(string $key, string $member, string ...$other_members): RedisCluster|array|false;
/**
* @see Redis::slowlog
*/
public function slowlog(string|array $key_or_address, mixed ...$args): mixed;
/**
* @see Redis::smembers()
*/
public function smembers(string $key): RedisCluster|array|false;
/**
* @see Redis::smove()
*/
public function smove(string $src, string $dst, string $member): RedisCluster|bool;
/**
* @see Redis::sort()
*/
public function sort(string $key, ?array $options = null): RedisCluster|array|bool|int|string;
/**
* @see Redis::sort_ro()
*/
public function sort_ro(string $key, ?array $options = null): RedisCluster|array|bool|int|string;
/**
* @see Redis::spop
*/
public function spop(string $key, int $count = 0): RedisCluster|string|array|false;
/**
* @see Redis::srandmember
*/
public function srandmember(string $key, int $count = 0): RedisCluster|string|array|false;
/**
* @see Redis::srem
*/
public function srem(string $key, mixed $value, mixed ...$other_values): RedisCluster|int|false;
/**
* @see Redis::sscan
*/
public function sscan(string $key, null|int|string &$iterator, ?string $pattern = null, int $count = 0): array|false;
/**
* @see Redis::strlen
*/
public function strlen(string $key): RedisCluster|int|false;
/**
* @see Redis::subscribe
*/
public function subscribe(array $channels, callable $cb): void;
/**
* @see Redis::sunion()
*/
public function sunion(string $key, string ...$other_keys): RedisCluster|bool|array;
/**
* @see Redis::sunionstore()
*/
public function sunionstore(string $dst, string $key, string ...$other_keys): RedisCluster|int|false;
/**
* @see Redis::time
*/
public function time(string|array $key_or_address): RedisCluster|bool|array;
/**
* @see Redis::ttl
*/
public function ttl(string $key): RedisCluster|int|false;
/**
* @see Redis::type
*/
public function type(string $key): RedisCluster|int|false;
/**
* @see Redis::unsubscribe
*/
public function unsubscribe(array $channels): bool|array;
/**
* @see Redis::unlink
*/
public function unlink(array|string $key, string ...$other_keys): RedisCluster|int|false;
/**
* @see Redis::unwatch
*/
public function unwatch(): bool;
/**
* @see Redis::watch
*/
public function watch(string $key, string ...$other_keys): RedisCluster|bool;
/**
* @see Redis::vadd
*/
public function vadd(string $key, array $values, mixed $element, array|null $options = null): RedisCluster|int|false;
/**
* @see Redis::xack
*/
public function xack(string $key, string $group, array $ids): RedisCluster|int|false;
/**
* @see Redis::xadd
*/
public function xadd(string $key, string $id, array $values, int $maxlen = 0, bool $approx = false): RedisCluster|string|false;
/**
* @see Redis::xclaim
*/
public function xclaim(string $key, string $group, string $consumer, int $min_iddle, array $ids, array $options): RedisCluster|string|array|false;
/**
* @see Redis::xdel
*/
public function xdel(string $key, array $ids): RedisCluster|int|false;
/**
* @see Redis::xgroup
*/
public function xgroup(string $operation, ?string $key = null, ?string $group = null, ?string $id_or_consumer = null,
bool $mkstream = false, int $entries_read = -2): mixed;
/**
* @see Redis::xautoclaim
*/
public function xautoclaim(string $key, string $group, string $consumer, int $min_idle, string $start, int $count = -1, bool $justid = false): RedisCluster|bool|array;
/**
* @see Redis::xinfo
*/
public function xinfo(string $operation, ?string $arg1 = null, ?string $arg2 = null, int $count = -1): mixed;
/**
* @see Redis::xlen
*/
public function xlen(string $key): RedisCluster|int|false;
/**
* @see Redis::xpending
*/
public function xpending(string $key, string $group, ?string $start = null, ?string $end = null, int $count = -1, ?string $consumer = null): RedisCluster|array|false;
/**
* @see Redis::xrange
*/
public function xrange(string $key, string $start, string $end, int $count = -1): RedisCluster|bool|array;
/**
* @see Redis::xread
*/
public function xread(array $streams, int $count = -1, int $block = -1): RedisCluster|bool|array;
/**
* @see Redis::xreadgroup
*/
public function xreadgroup(string $group, string $consumer, array $streams, int $count = 1, int $block = 1): RedisCluster|bool|array;
/**
* @see Redis::xrevrange
*/
public function xrevrange(string $key, string $start, string $end, int $count = -1): RedisCluster|bool|array;
/**
* @see Redis::xtrim
*/
public function xtrim(string $key, int $maxlen, bool $approx = false, bool $minid = false, int $limit = -1): RedisCluster|int|false;
/**
* @see Redis::zadd
*/
public function zadd(string $key, array|float $score_or_options, mixed ...$more_scores_and_mems): RedisCluster|int|float|false;
/**
* @see Redis::zcard
*/
public function zcard(string $key): RedisCluster|int|false;
/**
* @see Redis::zcount
*/
public function zcount(string $key, string $start, string $end): RedisCluster|int|false;
/**
* @see Redis::zincrby
*/
public function zincrby(string $key, float $value, string $member): RedisCluster|float|false;
/**
* @see Redis::zinterstore
*/
public function zinterstore(string $dst, array $keys, ?array $weights = null, ?string $aggregate = null): RedisCluster|int|false;
/**
* @see Redis::zintercard
*/
public function zintercard(array $keys, int $limit = -1): RedisCluster|int|false;
/**
* @see Redis::zlexcount
*/
public function zlexcount(string $key, string $min, string $max): RedisCluster|int|false;
/**
* @see Redis::zpopmax
*/
public function zpopmax(string $key, ?int $value = null): RedisCluster|bool|array;
/**
* @see Redis::zpopmin
*/
public function zpopmin(string $key, ?int $value = null): RedisCluster|bool|array;
/**
* @see Redis::zrange
*/
public function zrange(string $key, mixed $start, mixed $end, array|bool|null $options = null): RedisCluster|array|bool;
/**
* @see Redis::zrangestore
*/
public function zrangestore(string $dstkey, string $srckey, int $start, int $end,
array|bool|null $options = null): RedisCluster|int|false;
/**
* @see https://redis.io/commands/zrandmember
*/
public function zrandmember(string $key, ?array $options = null): RedisCluster|string|array;
/**
* @see Redis::zrangebylex
*/
public function zrangebylex(string $key, string $min, string $max, int $offset = -1, int $count = -1): RedisCluster|array|false;
/**
* @see Redis::zrangebyscore
*/
public function zrangebyscore(string $key, string $start, string $end, array $options = []): RedisCluster|array|false;
/**
* @see Redis::zrank
*/
public function zrank(string $key, mixed $member): RedisCluster|int|false;
/**
* @see Redis::zrem
*/
public function zrem(string $key, string $value, string ...$other_values): RedisCluster|int|false;
/**
* @see Redis::zremrangebylex
*/
public function zremrangebylex(string $key, string $min, string $max): RedisCluster|int|false;
/**
* @see Redis::zremrangebyrank
*/
public function zremrangebyrank(string $key, string $min, string $max): RedisCluster|int|false;
/**
* @see Redis::zremrangebyscore
*/
public function zremrangebyscore(string $key, string $min, string $max): RedisCluster|int|false;
/**
* @see Redis::zrevrange
*/
public function zrevrange(string $key, string $min, string $max, ?array $options = null): RedisCluster|bool|array;
/**
* @see Redis::zrevrangebylex
*/
public function zrevrangebylex(string $key, string $min, string $max, ?array $options = null): RedisCluster|bool|array;
/**
* @see Redis::zrevrangebyscore
*/
public function zrevrangebyscore(string $key, string $min, string $max, ?array $options = null): RedisCluster|bool|array;
/**
* @see Redis::zrevrank
*/
public function zrevrank(string $key, mixed $member): RedisCluster|int|false;
/**
* @see Redis::zscan
*/
public function zscan(string $key, null|int|string &$iterator, ?string $pattern = null, int $count = 0): RedisCluster|bool|array;
/**
* @see Redis::zscore
*/
public function zscore(string $key, mixed $member): RedisCluster|float|false;
/**
* @see https://redis.io/commands/zmscore
*/
public function zmscore(string $key, mixed $member, mixed ...$other_members): Redis|array|false;
/**
* @see Redis::zunionstore
*/
public function zunionstore(string $dst, array $keys, ?array $weights = null, ?string $aggregate = null): RedisCluster|int|false;
/**
* @see https://redis.io/commands/zinter
*/
public function zinter(array $keys, ?array $weights = null, ?array $options = null): RedisCluster|array|false;
/**
* @see https://redis.io/commands/zdiffstore
*/
public function zdiffstore(string $dst, array $keys): RedisCluster|int|false;
/**
* @see https://redis.io/commands/zunion
*/
public function zunion(array $keys, ?array $weights = null, ?array $options = null): RedisCluster|array|false;
/**
* @see https://redis.io/commands/zdiff
*/
public function zdiff(array $keys, ?array $options = null): RedisCluster|array|false;
}
class RedisClusterException extends RuntimeException {}