• PHP-Redis接口参照文件


    
    
    use JetBrains\PhpStorm\Deprecated;
    
    /**
     * Helper autocomplete for php redis extension
     *
     * @author Max Kamashev 
     * @link   https://github.com/ukko/phpredis-phpdoc
     */
    class Redis
    {
        const AFTER                 = 'after';
        const BEFORE                = 'before';
    
        /**
         * Options
         */
        const OPT_SERIALIZER        = 1;
        const OPT_PREFIX            = 2;
        const OPT_READ_TIMEOUT      = 3;
        const OPT_SCAN              = 4;
        const OPT_FAILOVER          = 5;
        const OPT_TCP_KEEPALIVE     = 6;
        const OPT_COMPRESSION       = 7;
        const OPT_REPLY_LITERAL     = 8;
        const OPT_COMPRESSION_LEVEL = 9;
    
        /**
         * Cluster options
         */
        const FAILOVER_NONE         = 0;
        const FAILOVER_ERROR        = 1;
        const FAILOVER_DISTRIBUTE   = 2;
        const FAILOVER_DISTRIBUTE_SLAVES = 3;
    
        /**
         * SCAN options
         */
        const SCAN_NORETRY          = 0;
        const SCAN_RETRY            = 1;
    
        /**
         * Serializers
         */
        const SERIALIZER_NONE       = 0;
        const SERIALIZER_PHP        = 1;
        const SERIALIZER_IGBINARY   = 2;
        const SERIALIZER_MSGPACK    = 3;
        const SERIALIZER_JSON       = 4;
    
        /**
         * Compressions
         */
        const COMPRESSION_NONE      = 0;
        const COMPRESSION_LZF       = 1;
        const COMPRESSION_ZSTD      = 2;
        const COMPRESSION_LZ4       = 3;
    
        /**
         * Compression ZSTD levels
         */
        const COMPRESSION_ZSTD_MIN = 1;
        const COMPRESSION_ZSTD_DEFAULT = 3;
        const COMPRESSION_ZSTD_MAX = 22;
    
        /**
         * Multi
         */
        const ATOMIC                = 0;
        const MULTI                 = 1;
        const PIPELINE              = 2;
    
        /**
         * Type
         */
        const REDIS_NOT_FOUND       = 0;
        const REDIS_STRING          = 1;
        const REDIS_SET             = 2;
        const REDIS_LIST            = 3;
        const REDIS_ZSET            = 4;
        const REDIS_HASH            = 5;
        const REDIS_STREAM          = 6;
    
        /**
         * Creates a Redis client
         *
         * @example $redis = new Redis();
         */
        public function __construct()
        {
        }
    
        /**
         * Connects to a Redis instance.
         *
         * @param string $host          can be a host, or the path to a unix domain socket
         * @param int    $port          optional
         * @param float  $timeout       value in seconds (optional, default is 0.0 meaning unlimited)
         * @param null   $reserved      should be null if $retryInterval is specified
         * @param int    $retryInterval retry interval in milliseconds.
         * @param float  $readTimeout   value in seconds (optional, default is 0 meaning unlimited)
         *
         * @return bool TRUE on success, FALSE on error
         *
         * @example
         * 
         * $redis->connect('127.0.0.1', 6379);
         * $redis->connect('127.0.0.1');            // port 6379 by default
         * $redis->connect('127.0.0.1', 6379, 2.5); // 2.5 sec timeout.
         * $redis->connect('/tmp/redis.sock');      // unix domain socket.
         * 
    */
    public function connect( $host, $port = 6379, $timeout = 0.0, $reserved = null, $retryInterval = 0, $readTimeout = 0.0 ) { } /** * Connects to a Redis instance. * * @param string $host can be a host, or the path to a unix domain socket * @param int $port optional * @param float $timeout value in seconds (optional, default is 0.0 meaning unlimited) * @param null $reserved should be null if $retry_interval is specified * @param int $retryInterval retry interval in milliseconds. * @param float $readTimeout value in seconds (optional, default is 0 meaning unlimited) * * @return bool TRUE on success, FALSE on error */ #[Deprecated(replacement: '%class%->connect(%parametersList%)')] public function open( $host, $port = 6379, $timeout = 0.0, $reserved = null, $retryInterval = 0, $readTimeout = 0.0 ) { } /** * A method to determine if a phpredis object thinks it's connected to a server * * @return bool Returns TRUE if phpredis thinks it's connected and FALSE if not */ public function isConnected() { } /** * Retrieve our host or unix socket that we're connected to * * @return string|false The host or unix socket we're connected to or FALSE if we're not connected */ public function getHost() { } /** * Get the port we're connected to * * @return int|false Returns the port we're connected to or FALSE if we're not connected */ public function getPort() { } /** * Get the database number phpredis is pointed to * * @return int|bool Returns the database number (int) phpredis thinks it's pointing to * or FALSE if we're not connected */ public function getDbNum() { } /** * Get the (write) timeout in use for phpredis * * @return float|false The timeout (DOUBLE) specified in our connect call or FALSE if we're not connected */ public function getTimeout() { } /** * Get the read timeout specified to phpredis or FALSE if we're not connected * * @return float|bool Returns the read timeout (which can be set using setOption and Redis::OPT_READ_TIMEOUT) * or FALSE if we're not connected */ public function getReadTimeout() { } /** * Gets the persistent ID that phpredis is using * * @return string|null|bool Returns the persistent id phpredis is using * (which will only be set if connected with pconnect), * NULL if we're not using a persistent ID, * and FALSE if we're not connected */ public function getPersistentID() { } /** * Get the password used to authenticate the phpredis connection * * @return string|null|bool Returns the password used to authenticate a phpredis session or NULL if none was used, * and FALSE if we're not connected */ public function getAuth() { } /** * Connects to a Redis instance or reuse a connection already established with pconnect/popen. * * The connection will not be closed on close or end of request until the php process ends. * So be patient on to many open FD's (specially on redis server side) when using persistent connections on * many servers connecting to one redis server. * * Also more than one persistent connection can be made identified by either host + port + timeout * or host + persistentId or unix socket + timeout. * * This feature is not available in threaded versions. pconnect and popen then working like their non persistent * equivalents. * * @param string $host can be a host, or the path to a unix domain socket * @param int $port optional * @param float $timeout value in seconds (optional, default is 0 meaning unlimited) * @param string $persistentId identity for the requested persistent connection * @param int $retryInterval retry interval in milliseconds. * @param float $readTimeout value in seconds (optional, default is 0 meaning unlimited) * * @return bool TRUE on success, FALSE on ertcnror. * * @example *
         * $redis->pconnect('127.0.0.1', 6379);
         *
         * // port 6379 by default - same connection like before
         * $redis->pconnect('127.0.0.1');
         *
         * // 2.5 sec timeout and would be another connection than the two before.
         * $redis->pconnect('127.0.0.1', 6379, 2.5);
         *
         * // x is sent as persistent_id and would be another connection than the three before.
         * $redis->pconnect('127.0.0.1', 6379, 2.5, 'x');
         *
         * // unix domain socket - would be another connection than the four before.
         * $redis->pconnect('/tmp/redis.sock');
         * 
    */
    public function pconnect( $host, $port = 6379, $timeout = 0.0, $persistentId = null, $retryInterval = 0, $readTimeout = 0.0 ) { } /** * @param string $host * @param int $port * @param float $timeout * @param string $persistentId * @param int $retryInterval * @param float $readTimeout * * @return bool */ #[Deprecated(replacement: '%class%->pconnect(%parametersList%)')] public function popen( $host, $port = 6379, $timeout = 0.0, $persistentId = '', $retryInterval = 0, $readTimeout = 0.0 ) { } /** * Disconnects from the Redis instance. * * Note: Closing a persistent connection requires PhpRedis >= 4.2.0 * * @since >= 4.2 Closing a persistent connection requires PhpRedis * * @return bool TRUE on success, FALSE on error */ public function close() { } /** * Swap one Redis database with another atomically * * Note: Requires Redis >= 4.0.0 * * @param int $db1 * @param int $db2 * * @return bool TRUE on success and FALSE on failure * * @link https://redis.io/commands/swapdb * @since >= 4.0 * @example *
         * // Swaps DB 0 with DB 1 atomically
         * $redis->swapdb(0, 1);
         * 
    */
    public function swapdb(int $db1, int $db2) { } /** * Set client option * * @param int $option option name * @param mixed $value option value * * @return bool TRUE on success, FALSE on error * * @example *
         * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);        // don't serialize data
         * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);         // use built-in serialize/unserialize
         * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY);    // use igBinary serialize/unserialize
         * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_MSGPACK);     // Use msgpack serialize/unserialize
         * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_JSON);        // Use json serialize/unserialize
         *
         * $redis->setOption(Redis::OPT_PREFIX, 'myAppName:');                      // use custom prefix on all keys
         *
         * // Options for the SCAN family of commands, indicating whether to abstract
         * // empty results from the user.  If set to SCAN_NORETRY (the default), phpredis
         * // will just issue one SCAN command at a time, sometimes returning an empty
         * // array of results.  If set to SCAN_RETRY, phpredis will retry the scan command
         * // until keys come back OR Redis returns an iterator of zero
         * $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_NORETRY);
         * $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
         * 
    */
    public function setOption($option, $value) { } /** * Get client option * * @param int $option parameter name * * @return mixed|null Parameter value * * @see setOption() * @example * // return option value * $redis->getOption(Redis::OPT_SERIALIZER); */ public function getOption($option) { } /** * Check the current connection status * * @param string $message [optional] * * @return bool|string TRUE if the command is successful or returns message * Throws a RedisException object on connectivity error, as described above. * @throws RedisException * @link https://redis.io/commands/ping */ public function ping($message=null) { } /** * Echo the given string * * @param string $message * * @return string Returns message * * @link https://redis.io/commands/echo */ public function echo($message) { } /** * Get the value related to the specified key * * @param string $key * * @return string|mixed|false If key didn't exist, FALSE is returned. * Otherwise, the value related to this key is returned * * @link https://redis.io/commands/get * @example *
         * $redis->set('key', 'hello');
         * $redis->get('key');
         *
         * // set and get with serializer
         * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_JSON);
         *
         * $redis->set('key', ['asd' => 'as', 'dd' => 123, 'b' => true]);
         * var_dump($redis->get('key'));
         * // Output:
         * array(3) {
         *  'asd' => string(2) "as"
         *  'dd' => int(123)
         *  'b' => bool(true)
         * }
         * 
    */
    public function get($key) { } /** * Set the string value in argument as value of the key. * * @since If you're using Redis >= 2.6.12, you can pass extended options as explained in example * * @param string $key * @param string|mixed $value string if not used serializer * @param int|array $timeout [optional] Calling setex() is preferred if you want a timeout.
    * Since 2.6.12 it also supports different flags inside an array. Example ['NX', 'EX' => 60]
    * - EX seconds -- Set the specified expire time, in seconds.
    * - PX milliseconds -- Set the specified expire time, in milliseconds.
    * - NX -- Only set the key if it does not already exist.
    * - XX -- Only set the key if it already exist.
    *
         * // Simple key -> value set
         * $redis->set('key', 'value');
         *
         * // Will redirect, and actually make an SETEX call
         * $redis->set('key','value', 10);
         *
         * // Will set the key, if it doesn't exist, with a ttl of 10 seconds
         * $redis->set('key', 'value', ['nx', 'ex' => 10]);
         *
         * // Will set a key, if it does exist, with a ttl of 1000 milliseconds
         * $redis->set('key', 'value', ['xx', 'px' => 1000]);
         * 
    * * @return bool TRUE if the command is successful * * @link https://redis.io/commands/set */
    public function set($key, $value, $timeout = null) { } /** * Set the string value in argument as value of the key, with a time to live. * * @param string $key * @param int $ttl * @param string|mixed $value * * @return bool TRUE if the command is successful * * @link https://redis.io/commands/setex * @example $redis->setex('key', 3600, 'value'); // sets key → value, with 1h TTL. */ public function setex($key, $ttl, $value) { } /** * Set the value and expiration in milliseconds of a key. * * @see setex() * @param string $key * @param int $ttl, in milliseconds. * @param string|mixed $value * * @return bool TRUE if the command is successful * * @link https://redis.io/commands/psetex * @example $redis->psetex('key', 1000, 'value'); // sets key → value, with 1sec TTL. */ public function psetex($key, $ttl, $value) { } /** * Set the string value in argument as value of the key if the key doesn't already exist in the database. * * @param string $key * @param string|mixed $value * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/setnx * @example *
         * $redis->setnx('key', 'value');   // return TRUE
         * $redis->setnx('key', 'value');   // return FALSE
         * 
    */
    public function setnx($key, $value) { } /** * Remove specified keys. * * @param int|string|array $key1 An array of keys, or an undefined number of parameters, each a key: key1 key2 key3 ... keyN * @param int|string ...$otherKeys * * @return int Number of keys deleted * * @link https://redis.io/commands/del * @example *
         * $redis->set('key1', 'val1');
         * $redis->set('key2', 'val2');
         * $redis->set('key3', 'val3');
         * $redis->set('key4', 'val4');
         *
         * $redis->del('key1', 'key2');     // return 2
         * $redis->del(['key3', 'key4']);   // return 2
         * 
    */
    public function del($key1, ...$otherKeys) { } /** * @param string|string[] $key1 * @param string $key2 * @param string $key3 * * @return int Number of keys deleted */ #[Deprecated(replacement: "%class%->del(%parametersList%)")] public function delete($key1, $key2 = null, $key3 = null) { } /** * Delete a key asynchronously in another thread. Otherwise it is just as DEL, but non blocking. * * @see del() * @param string|string[] $key1 * @param string $key2 * @param string $key3 * * @return int Number of keys unlinked. * * @link https://redis.io/commands/unlink * @example *
         * $redis->set('key1', 'val1');
         * $redis->set('key2', 'val2');
         * $redis->set('key3', 'val3');
         * $redis->set('key4', 'val4');
         * $redis->unlink('key1', 'key2');          // return 2
         * $redis->unlink(array('key3', 'key4'));   // return 2
         * 
    */
    public function unlink($key1, $key2 = null, $key3 = null) { } /** * Enter and exit transactional mode. * * @param int $mode Redis::MULTI|Redis::PIPELINE * Defaults to Redis::MULTI. * A Redis::MULTI block of commands runs as a single transaction; * a Redis::PIPELINE block is simply transmitted faster to the server, but without any guarantee of atomicity. * discard cancels a transaction. * * @return Redis returns the Redis instance and enters multi-mode. * Once in multi-mode, all subsequent method calls return the same object until exec() is called. * * @link https://redis.io/commands/multi * @example *
         * $ret = $redis->multi()
         *      ->set('key1', 'val1')
         *      ->get('key1')
         *      ->set('key2', 'val2')
         *      ->get('key2')
         *      ->exec();
         *
         * //$ret == array (
         * //    0 => TRUE,
         * //    1 => 'val1',
         * //    2 => TRUE,
         * //    3 => 'val2');
         * 
    */
    public function multi($mode = Redis::MULTI) { } /** * Returns a Redis instance which can simply transmitted faster to the server. * * @return Redis returns the Redis instance. * Once in pipeline-mode, all subsequent method calls return the same object until exec() is called. * Pay attention, that Pipeline is not a transaction, so you can get unexpected * results in case of big pipelines and small read/write timeouts. * * @link https://redis.io/topics/pipelining * @example *
         * $ret = $this->redis->pipeline()
         *      ->ping()
         *      ->multi()->set('x', 42)->incr('x')->exec()
         *      ->ping()
         *      ->multi()->get('x')->del('x')->exec()
         *      ->ping()
         *      ->exec();
         *
         * //$ret == array (
         * //    0 => '+PONG',
         * //    1 => [TRUE, 43],
         * //    2 => '+PONG',
         * //    3 => [43, 1],
         * //    4 => '+PONG');
         * 
    */
    public function pipeline() { } /** * @return void|array * * @see multi() * @link https://redis.io/commands/exec */ public function exec() { } /** * @see multi() * @link https://redis.io/commands/discard */ public function discard() { } /** * Watches a key for modifications by another client. If the key is modified between WATCH and EXEC, * the MULTI/EXEC transaction will fail (return FALSE). unwatch cancels all the watching of all keys by this client. * @param string|string[] $key a list of keys * * @return void * * @link https://redis.io/commands/watch * @example *
         * $redis->watch('x');
         * // long code here during the execution of which other clients could well modify `x`
         * $ret = $redis->multi()
         *          ->incr('x')
         *          ->exec();
         * // $ret = FALSE if x has been modified between the call to WATCH and the call to EXEC.
         * 
    */
    public function watch($key) { } /** * @see watch() * @link https://redis.io/commands/unwatch */ public function unwatch() { } /** * Subscribe to channels. * * Warning: this function will probably change in the future. * * @param string[] $channels an array of channels to subscribe * @param string|array $callback either a string or an array($instance, 'method_name'). * The callback function receives 3 parameters: the redis instance, the channel name, and the message. * * @return mixed|null Any non-null return value in the callback will be returned to the caller. * * @link https://redis.io/commands/subscribe * @example *
         * function f($redis, $chan, $msg) {
         *  switch($chan) {
         *      case 'chan-1':
         *          ...
         *          break;
         *
         *      case 'chan-2':
         *                     ...
         *          break;
         *
         *      case 'chan-2':
         *          ...
         *          break;
         *      }
         * }
         *
         * $redis->subscribe(array('chan-1', 'chan-2', 'chan-3'), 'f'); // subscribe to 3 chans
         * 
    */
    public function subscribe($channels, $callback) { } /** * Subscribe to channels by pattern * * @param array $patterns an array of glob-style patterns to subscribe * @param string|array $callback Either a string or an array with an object and method. * The callback will get four arguments ($redis, $pattern, $channel, $message) * @param mixed Any non-null return value in the callback will be returned to the caller * * @link https://redis.io/commands/psubscribe * @example *
         * function psubscribe($redis, $pattern, $chan, $msg) {
         *  echo "Pattern: $pattern\n";
         *  echo "Channel: $chan\n";
         *  echo "Payload: $msg\n";
         * }
         * 
    */
    public function psubscribe($patterns, $callback) { } /** * Publish messages to channels. * * Warning: this function will probably change in the future. * * @param string $channel a channel to publish to * @param string $message string * * @return int Number of clients that received the message * * @link https://redis.io/commands/publish * @example $redis->publish('chan-1', 'hello, world!'); // send message. */ public function publish($channel, $message) { } /** * A command allowing you to get information on the Redis pub/sub system * * @param string $keyword String, which can be: "channels", "numsub", or "numpat" * @param string|array $argument Optional, variant. * For the "channels" subcommand, you can pass a string pattern. * For "numsub" an array of channel names * * @return array|int Either an integer or an array. * - channels Returns an array where the members are the matching channels. * - numsub Returns a key/value array where the keys are channel names and * values are their counts. * - numpat Integer return containing the number active pattern subscriptions * * @link https://redis.io/commands/pubsub * @example *
         * $redis->pubsub('channels'); // All channels
         * $redis->pubsub('channels', '*pattern*'); // Just channels matching your pattern
         * $redis->pubsub('numsub', array('chan1', 'chan2')); // Get subscriber counts for 'chan1' and 'chan2'
         * $redis->pubsub('numpat'); // Get the number of pattern subscribers
         * 
    */
    public function pubsub($keyword, $argument) { } /** * Stop listening for messages posted to the given channels. * * @param array $channels an array of channels to usubscribe * * @link https://redis.io/commands/unsubscribe */ public function unsubscribe($channels = null) { } /** * Stop listening for messages posted to the given channels. * * @param array $patterns an array of glob-style patterns to unsubscribe * * @link https://redis.io/commands/punsubscribe */ public function punsubscribe($patterns = null) { } /** * Verify if the specified key/keys exists * * This function took a single argument and returned TRUE or FALSE in phpredis versions < 4.0.0. * * @since >= 4.0 Returned int, if < 4.0 returned bool * * @param string|string[] $key * * @return int|bool The number of keys tested that do exist * * @link https://redis.io/commands/exists * @link https://github.com/phpredis/phpredis#exists * @example *
         * $redis->exists('key'); // 1
         * $redis->exists('NonExistingKey'); // 0
         *
         * $redis->mset(['foo' => 'foo', 'bar' => 'bar', 'baz' => 'baz']);
         * $redis->exists(['foo', 'bar', 'baz]); // 3
         * $redis->exists('foo', 'bar', 'baz'); // 3
         * 
    */
    public function exists($key) { } /** * Increment the number stored at key by one. * * @param string $key * * @return int the new value * * @link https://redis.io/commands/incr * @example *
         * $redis->incr('key1'); // key1 didn't exists, set to 0 before the increment and now has the value 1
         * $redis->incr('key1'); // 2
         * $redis->incr('key1'); // 3
         * $redis->incr('key1'); // 4
         * 
    */
    public function incr($key) { } /** * Increment the float value of a key by the given amount * * @param string $key * @param float $increment * * @return float * * @link https://redis.io/commands/incrbyfloat * @example *
         * $redis->set('x', 3);
         * $redis->incrByFloat('x', 1.5);   // float(4.5)
         * $redis->get('x');                // float(4.5)
         * 
    */
    public function incrByFloat($key, $increment) { } /** * Increment the number stored at key by one. * If the second argument is filled, it will be used as the integer value of the increment. * * @param string $key key * @param int $value value that will be added to key (only for incrBy) * * @return int the new value * * @link https://redis.io/commands/incrby * @example *
         * $redis->incr('key1');        // key1 didn't exists, set to 0 before the increment and now has the value 1
         * $redis->incr('key1');        // 2
         * $redis->incr('key1');        // 3
         * $redis->incr('key1');        // 4
         * $redis->incrBy('key1', 10);  // 14
         * 
    */
    public function incrBy($key, $value) { } /** * Decrement the number stored at key by one. * * @param string $key * * @return int the new value * * @link https://redis.io/commands/decr * @example *
         * $redis->decr('key1'); // key1 didn't exists, set to 0 before the increment and now has the value -1
         * $redis->decr('key1'); // -2
         * $redis->decr('key1'); // -3
         * 
    */
    public function decr($key) { } /** * Decrement the number stored at key by one. * If the second argument is filled, it will be used as the integer value of the decrement. * * @param string $key * @param int $value that will be subtracted to key (only for decrBy) * * @return int the new value * * @link https://redis.io/commands/decrby * @example *
         * $redis->decr('key1');        // key1 didn't exists, set to 0 before the increment and now has the value -1
         * $redis->decr('key1');        // -2
         * $redis->decr('key1');        // -3
         * $redis->decrBy('key1', 10);  // -13
         * 
    */
    public function decrBy($key, $value) { } /** * Adds the string values to the head (left) of the list. * Creates the list if the key didn't exist. * If the key exists and is not a list, FALSE is returned. * * @param string $key * @param string|mixed ...$value1 Variadic list of values to push in key, if dont used serialized, used string * * @return int|false The new length of the list in case of success, FALSE in case of Failure * * @link https://redis.io/commands/lpush * @example *
         * $redis->lPush('l', 'v1', 'v2', 'v3', 'v4')   // int(4)
         * var_dump( $redis->lRange('l', 0, -1) );
         * // Output:
         * // array(4) {
         * //   [0]=> string(2) "v4"
         * //   [1]=> string(2) "v3"
         * //   [2]=> string(2) "v2"
         * //   [3]=> string(2) "v1"
         * // }
         * 
    */
    public function lPush($key, ...$value1) { } /** * Adds the string values to the tail (right) of the list. * Creates the list if the key didn't exist. * If the key exists and is not a list, FALSE is returned. * * @param string $key * @param string|mixed ...$value1 Variadic list of values to push in key, if dont used serialized, used string * * @return int|false The new length of the list in case of success, FALSE in case of Failure * * @link https://redis.io/commands/rpush * @example *
         * $redis->rPush('l', 'v1', 'v2', 'v3', 'v4');    // int(4)
         * var_dump( $redis->lRange('l', 0, -1) );
         * // Output:
         * // array(4) {
         * //   [0]=> string(2) "v1"
         * //   [1]=> string(2) "v2"
         * //   [2]=> string(2) "v3"
         * //   [3]=> string(2) "v4"
         * // }
         * 
    */
    public function rPush($key, ...$value1) { } /** * Adds the string value to the head (left) of the list if the list exists. * * @param string $key * @param string|mixed $value String, value to push in key * * @return int|false The new length of the list in case of success, FALSE in case of Failure. * * @link https://redis.io/commands/lpushx * @example *
         * $redis->del('key1');
         * $redis->lPushx('key1', 'A');     // returns 0
         * $redis->lPush('key1', 'A');      // returns 1
         * $redis->lPushx('key1', 'B');     // returns 2
         * $redis->lPushx('key1', 'C');     // returns 3
         * // key1 now points to the following list: [ 'A', 'B', 'C' ]
         * 
    */
    public function lPushx($key, $value) { } /** * Adds the string value to the tail (right) of the list if the ist exists. FALSE in case of Failure. * * @param string $key * @param string|mixed $value String, value to push in key * * @return int|false The new length of the list in case of success, FALSE in case of Failure. * * @link https://redis.io/commands/rpushx * @example *
         * $redis->del('key1');
         * $redis->rPushx('key1', 'A'); // returns 0
         * $redis->rPush('key1', 'A'); // returns 1
         * $redis->rPushx('key1', 'B'); // returns 2
         * $redis->rPushx('key1', 'C'); // returns 3
         * // key1 now points to the following list: [ 'A', 'B', 'C' ]
         * 
    */
    public function rPushx($key, $value) { } /** * Returns and removes the first element of the list. * * @param string $key * * @return mixed|bool if command executed successfully BOOL FALSE in case of failure (empty list) * * @link https://redis.io/commands/lpop * @example *
         * $redis->rPush('key1', 'A');
         * $redis->rPush('key1', 'B');
         * $redis->rPush('key1', 'C');  // key1 => [ 'A', 'B', 'C' ]
         * $redis->lPop('key1');        // key1 => [ 'B', 'C' ]
         * 
    */
    public function lPop($key) { } /** * Returns and removes the last element of the list. * * @param string $key * * @return mixed|bool if command executed successfully BOOL FALSE in case of failure (empty list) * * @link https://redis.io/commands/rpop * @example *
         * $redis->rPush('key1', 'A');
         * $redis->rPush('key1', 'B');
         * $redis->rPush('key1', 'C');  // key1 => [ 'A', 'B', 'C' ]
         * $redis->rPop('key1');        // key1 => [ 'A', 'B' ]
         * 
    */
    public function rPop($key) { } /** * Is a blocking lPop primitive. If at least one of the lists contains at least one element, * the element will be popped from the head of the list and returned to the caller. * Il all the list identified by the keys passed in arguments are empty, blPop will block * during the specified timeout until an element is pushed to one of those lists. This element will be popped. * * @param string|string[] $keys String array containing the keys of the lists OR variadic list of strings * @param int $timeout Timeout is always the required final parameter * * @return array ['listName', 'element'] * * @link https://redis.io/commands/blpop * @example *
         * // Non blocking feature
         * $redis->lPush('key1', 'A');
         * $redis->del('key2');
         *
         * $redis->blPop('key1', 'key2', 10);        // array('key1', 'A')
         * // OR
         * $redis->blPop(['key1', 'key2'], 10);      // array('key1', 'A')
         *
         * $redis->brPop('key1', 'key2', 10);        // array('key1', 'A')
         * // OR
         * $redis->brPop(['key1', 'key2'], 10); // array('key1', 'A')
         *
         * // Blocking feature
         *
         * // process 1
         * $redis->del('key1');
         * $redis->blPop('key1', 10);
         * // blocking for 10 seconds
         *
         * // process 2
         * $redis->lPush('key1', 'A');
         *
         * // process 1
         * // array('key1', 'A') is returned
         * 
    */
    public function blPop($keys, $timeout) { } /** * Is a blocking rPop primitive. If at least one of the lists contains at least one element, * the element will be popped from the head of the list and returned to the caller. * Il all the list identified by the keys passed in arguments are empty, brPop will * block during the specified timeout until an element is pushed to one of those lists. T * his element will be popped. * * @param string|string[] $keys String array containing the keys of the lists OR variadic list of strings * @param int $timeout Timeout is always the required final parameter * * @return array ['listName', 'element'] * * @link https://redis.io/commands/brpop * @example *
         * // Non blocking feature
         * $redis->lPush('key1', 'A');
         * $redis->del('key2');
         *
         * $redis->blPop('key1', 'key2', 10); // array('key1', 'A')
         * // OR
         * $redis->blPop(array('key1', 'key2'), 10); // array('key1', 'A')
         *
         * $redis->brPop('key1', 'key2', 10); // array('key1', 'A')
         * // OR
         * $redis->brPop(array('key1', 'key2'), 10); // array('key1', 'A')
         *
         * // Blocking feature
         *
         * // process 1
         * $redis->del('key1');
         * $redis->blPop('key1', 10);
         * // blocking for 10 seconds
         *
         * // process 2
         * $redis->lPush('key1', 'A');
         *
         * // process 1
         * // array('key1', 'A') is returned
         * 
    */
    public function brPop(array $keys, $timeout) { } /** * Returns the size of a list identified by Key. If the list didn't exist or is empty, * the command returns 0. If the data type identified by Key is not a list, the command return FALSE. * * @param string $key * * @return int|bool The size of the list identified by Key exists. * bool FALSE if the data type identified by Key is not list * * @link https://redis.io/commands/llen * @example *
         * $redis->rPush('key1', 'A');
         * $redis->rPush('key1', 'B');
         * $redis->rPush('key1', 'C'); // key1 => [ 'A', 'B', 'C' ]
         * $redis->lLen('key1');       // 3
         * $redis->rPop('key1');
         * $redis->lLen('key1');       // 2
         * 
    */
    public function lLen($key) { } /** * @link https://redis.io/commands/llen * * @param string $key * * @return int The size of the list identified by Key exists */ #[Deprecated(replacement: '%class%->lLen(%parametersList%)')] public function lSize($key) { } /** * Return the specified element of the list stored at the specified key. * 0 the first element, 1 the second ... -1 the last element, -2 the penultimate ... * Return FALSE in case of a bad index or a key that doesn't point to a list. * * @param string $key * @param int $index * * @return mixed|bool the element at this index * * Bool FALSE if the key identifies a non-string data type, or no value corresponds to this index in the list Key. * * @link https://redis.io/commands/lindex * @example *
         * $redis->rPush('key1', 'A');
         * $redis->rPush('key1', 'B');
         * $redis->rPush('key1', 'C');  // key1 => [ 'A', 'B', 'C' ]
         * $redis->lIndex('key1', 0);     // 'A'
         * $redis->lIndex('key1', -1);    // 'C'
         * $redis->lIndex('key1', 10);    // `FALSE`
         * 
    */
    public function lIndex($key, $index) { } /** * @link https://redis.io/commands/lindex * * @param string $key * @param int $index * @return mixed|bool the element at this index */ #[Deprecated(replacement: '%class%->lIndex(%parametersList%)')] public function lGet($key, $index) { } /** * Set the list at index with the new value. * * @param string $key * @param int $index * @param string $value * * @return bool TRUE if the new value is setted. * FALSE if the index is out of range, or data type identified by key is not a list. * * @link https://redis.io/commands/lset * @example *
         * $redis->rPush('key1', 'A');
         * $redis->rPush('key1', 'B');
         * $redis->rPush('key1', 'C');    // key1 => [ 'A', 'B', 'C' ]
         * $redis->lIndex('key1', 0);     // 'A'
         * $redis->lSet('key1', 0, 'X');
         * $redis->lIndex('key1', 0);     // 'X'
         * 
    */
    public function lSet($key, $index, $value) { } /** * Returns the specified elements of the list stored at the specified key in * the range [start, end]. start and stop are interpretated as indices: 0 the first element, * 1 the second ... -1 the last element, -2 the penultimate ... * * @param string $key * @param int $start * @param int $end * * @return array containing the values in specified range. * * @link https://redis.io/commands/lrange * @example *
         * $redis->rPush('key1', 'A');
         * $redis->rPush('key1', 'B');
         * $redis->rPush('key1', 'C');
         * $redis->lRange('key1', 0, -1); // array('A', 'B', 'C')
         * 
    */
    public function lRange($key, $start, $end) { } /** * @link https://redis.io/commands/lrange * * @param string $key * @param int $start * @param int $end * @return array */ #[Deprecated(replacement: '%class%->lRange(%parametersList%)')] public function lGetRange($key, $start, $end) { } /** * Trims an existing list so that it will contain only a specified range of elements. * * @param string $key * @param int $start * @param int $stop * * @return array|false Bool return FALSE if the key identify a non-list value * * @link https://redis.io/commands/ltrim * @example *
         * $redis->rPush('key1', 'A');
         * $redis->rPush('key1', 'B');
         * $redis->rPush('key1', 'C');
         * $redis->lRange('key1', 0, -1); // array('A', 'B', 'C')
         * $redis->lTrim('key1', 0, 1);
         * $redis->lRange('key1', 0, -1); // array('A', 'B')
         * 
    */
    public function lTrim($key, $start, $stop) { } /** * @link https://redis.io/commands/ltrim * * @param string $key * @param int $start * @param int $stop */ #[Deprecated(replacement: '%class%->lTrim(%parametersList%)')] public function listTrim($key, $start, $stop) { } /** * Removes the first count occurrences of the value element from the list. * If count is zero, all the matching elements are removed. If count is negative, * elements are removed from tail to head. * * @param string $key * @param string $value * @param int $count * * @return int|bool the number of elements to remove * bool FALSE if the value identified by key is not a list. * * @link https://redis.io/commands/lrem * @example *
         * $redis->lPush('key1', 'A');
         * $redis->lPush('key1', 'B');
         * $redis->lPush('key1', 'C');
         * $redis->lPush('key1', 'A');
         * $redis->lPush('key1', 'A');
         *
         * $redis->lRange('key1', 0, -1);   // array('A', 'A', 'C', 'B', 'A')
         * $redis->lRem('key1', 'A', 2);    // 2
         * $redis->lRange('key1', 0, -1);   // array('C', 'B', 'A')
         * 
    */
    public function lRem($key, $value, $count) { } /** * @link https://redis.io/commands/lremove * * @param string $key * @param string $value * @param int $count */ #[Deprecated(replacement: '%class%->lRem(%parametersList%)')] public function lRemove($key, $value, $count) { } /** * Insert value in the list before or after the pivot value. the parameter options * specify the position of the insert (before or after). If the list didn't exists, * or the pivot didn't exists, the value is not inserted. * * @param string $key * @param int $position Redis::BEFORE | Redis::AFTER * @param string $pivot * @param string|mixed $value * * @return int The number of the elements in the list, -1 if the pivot didn't exists. * * @link https://redis.io/commands/linsert * @example *
         * $redis->del('key1');
         * $redis->lInsert('key1', Redis::AFTER, 'A', 'X');     // 0
         *
         * $redis->lPush('key1', 'A');
         * $redis->lPush('key1', 'B');
         * $redis->lPush('key1', 'C');
         *
         * $redis->lInsert('key1', Redis::BEFORE, 'C', 'X');    // 4
         * $redis->lRange('key1', 0, -1);                       // array('A', 'B', 'X', 'C')
         *
         * $redis->lInsert('key1', Redis::AFTER, 'C', 'Y');     // 5
         * $redis->lRange('key1', 0, -1);                       // array('A', 'B', 'X', 'C', 'Y')
         *
         * $redis->lInsert('key1', Redis::AFTER, 'W', 'value'); // -1
         * 
    */
    public function lInsert($key, $position, $pivot, $value) { } /** * Adds a values to the set value stored at key. * * @param string $key Required key * @param string|mixed ...$value1 Variadic list of values * * @return int|bool The number of elements added to the set. * If this value is already in the set, FALSE is returned * * @link https://redis.io/commands/sadd * @example *
         * $redis->sAdd('k', 'v1');                // int(1)
         * $redis->sAdd('k', 'v1', 'v2', 'v3');    // int(2)
         * 
    */
    public function sAdd($key, ...$value1) { } /** * Removes the specified members from the set value stored at key. * * @param string $key * @param string|mixed ...$member1 Variadic list of members * * @return int The number of elements removed from the set * * @link https://redis.io/commands/srem * @example *
         * var_dump( $redis->sAdd('k', 'v1', 'v2', 'v3') );    // int(3)
         * var_dump( $redis->sRem('k', 'v2', 'v3') );          // int(2)
         * var_dump( $redis->sMembers('k') );
         *  Output:
         * // array(1) {
         * //   [0]=> string(2) "v1"
         * // }
         * 
    */
    public function sRem($key, ...$member1) { } /** * @link https://redis.io/commands/srem * * @param string $key * @param string|mixed ...$member1 */ #[Deprecated(replacement: '%class%->sRem(%parametersList%)')] public function sRemove($key, ...$member1) { } /** * Moves the specified member from the set at srcKey to the set at dstKey. * * @param string $srcKey * @param string $dstKey * @param string|mixed $member * * @return bool If the operation is successful, return TRUE. * If the srcKey and/or dstKey didn't exist, and/or the member didn't exist in srcKey, FALSE is returned. * * @link https://redis.io/commands/smove * @example *
         * $redis->sAdd('key1' , 'set11');
         * $redis->sAdd('key1' , 'set12');
         * $redis->sAdd('key1' , 'set13');          // 'key1' => {'set11', 'set12', 'set13'}
         * $redis->sAdd('key2' , 'set21');
         * $redis->sAdd('key2' , 'set22');          // 'key2' => {'set21', 'set22'}
         * $redis->sMove('key1', 'key2', 'set13');  // 'key1' =>  {'set11', 'set12'}
         *                                          // 'key2' =>  {'set21', 'set22', 'set13'}
         * 
    */
    public function sMove($srcKey, $dstKey, $member) { } /** * Checks if value is a member of the set stored at the key key. * * @param string $key * @param string|mixed $value * * @return bool TRUE if value is a member of the set at key key, FALSE otherwise * * @link https://redis.io/commands/sismember * @example *
         * $redis->sAdd('key1' , 'set1');
         * $redis->sAdd('key1' , 'set2');
         * $redis->sAdd('key1' , 'set3'); // 'key1' => {'set1', 'set2', 'set3'}
         *
         * $redis->sIsMember('key1', 'set1'); // TRUE
         * $redis->sIsMember('key1', 'setX'); // FALSE
         * 
    */
    public function sIsMember($key, $value) { } /** * @link https://redis.io/commands/sismember * * @param string $key * @param string|mixed $value */ #[Deprecated(replacement: '%class%->sIsMember(%parametersList%)')] public function sContains($key, $value) { } /** * Returns the cardinality of the set identified by key. * * @param string $key * * @return int the cardinality of the set identified by key, 0 if the set doesn't exist. * * @link https://redis.io/commands/scard * @example *
         * $redis->sAdd('key1' , 'set1');
         * $redis->sAdd('key1' , 'set2');
         * $redis->sAdd('key1' , 'set3');   // 'key1' => {'set1', 'set2', 'set3'}
         * $redis->sCard('key1');           // 3
         * $redis->sCard('keyX');           // 0
         * 
    */
    public function sCard($key) { } /** * Removes and returns a random element from the set value at Key. * * @param string $key * @param int $count [optional] * * @return string|mixed|array|bool "popped" values * bool FALSE if set identified by key is empty or doesn't exist. * * @link https://redis.io/commands/spop * @example *
         * $redis->sAdd('key1' , 'set1');
         * $redis->sAdd('key1' , 'set2');
         * $redis->sAdd('key1' , 'set3');   // 'key1' => {'set3', 'set1', 'set2'}
         * $redis->sPop('key1');            // 'set1', 'key1' => {'set3', 'set2'}
         * $redis->sPop('key1');            // 'set3', 'key1' => {'set2'}
         *
         * // With count
         * $redis->sAdd('key2', 'set1', 'set2', 'set3');
         * var_dump( $redis->sPop('key2', 3) ); // Will return all members but in no particular order
         *
         * // array(3) {
         * //   [0]=> string(4) "set2"
         * //   [1]=> string(4) "set3"
         * //   [2]=> string(4) "set1"
         * // }
         * 
    */
    public function sPop($key, $count = 1) { } /** * Returns a random element(s) from the set value at Key, without removing it. * * @param string $key * @param int $count [optional] * * @return string|mixed|array|bool value(s) from the set * bool FALSE if set identified by key is empty or doesn't exist and count argument isn't passed. * * @link https://redis.io/commands/srandmember * @example *
         * $redis->sAdd('key1' , 'one');
         * $redis->sAdd('key1' , 'two');
         * $redis->sAdd('key1' , 'three');              // 'key1' => {'one', 'two', 'three'}
         *
         * var_dump( $redis->sRandMember('key1') );     // 'key1' => {'one', 'two', 'three'}
         *
         * // string(5) "three"
         *
         * var_dump( $redis->sRandMember('key1', 2) );  // 'key1' => {'one', 'two', 'three'}
         *
         * // array(2) {
         * //   [0]=> string(2) "one"
         * //   [1]=> string(5) "three"
         * // }
         * 
    */
    public function sRandMember($key, $count = 1) { } /** * Returns the members of a set resulting from the intersection of all the sets * held at the specified keys. If just a single key is specified, then this command * produces the members of this set. If one of the keys is missing, FALSE is returned. * * @param string $key1 keys identifying the different sets on which we will apply the intersection. * @param string ...$otherKeys variadic list of keys * * @return array contain the result of the intersection between those keys * If the intersection between the different sets is empty, the return value will be empty array. * * @link https://redis.io/commands/sinter * @example *
         * $redis->sAdd('key1', 'val1');
         * $redis->sAdd('key1', 'val2');
         * $redis->sAdd('key1', 'val3');
         * $redis->sAdd('key1', 'val4');
         *
         * $redis->sAdd('key2', 'val3');
         * $redis->sAdd('key2', 'val4');
         *
         * $redis->sAdd('key3', 'val3');
         * $redis->sAdd('key3', 'val4');
         *
         * var_dump($redis->sInter('key1', 'key2', 'key3'));
         *
         * //array(2) {
         * //  [0]=>
         * //  string(4) "val4"
         * //  [1]=>
         * //  string(4) "val3"
         * //}
         * 
    */
    public function sInter($key1, ...$otherKeys) { } /** * Performs a sInter command and stores the result in a new set. * * @param string $dstKey the key to store the diff into. * @param string $key1 keys identifying the different sets on which we will apply the intersection. * @param string ...$otherKeys variadic list of keys * * @return int|false The cardinality of the resulting set, or FALSE in case of a missing key * * @link https://redis.io/commands/sinterstore * @example *
         * $redis->sAdd('key1', 'val1');
         * $redis->sAdd('key1', 'val2');
         * $redis->sAdd('key1', 'val3');
         * $redis->sAdd('key1', 'val4');
         *
         * $redis->sAdd('key2', 'val3');
         * $redis->sAdd('key2', 'val4');
         *
         * $redis->sAdd('key3', 'val3');
         * $redis->sAdd('key3', 'val4');
         *
         * var_dump($redis->sInterStore('output', 'key1', 'key2', 'key3'));
         * var_dump($redis->sMembers('output'));
         *
         * //int(2)
         * //
         * //array(2) {
         * //  [0]=>
         * //  string(4) "val4"
         * //  [1]=>
         * //  string(4) "val3"
         * //}
         * 
    */
    public function sInterStore($dstKey, $key1, ...$otherKeys) { } /** * Performs the union between N sets and returns it. * * @param string $key1 first key for union * @param string ...$otherKeys variadic list of keys corresponding to sets in redis * * @return array string[] The union of all these sets * * @link https://redis.io/commands/sunionstore * @example *
         * $redis->sAdd('s0', '1');
         * $redis->sAdd('s0', '2');
         * $redis->sAdd('s1', '3');
         * $redis->sAdd('s1', '1');
         * $redis->sAdd('s2', '3');
         * $redis->sAdd('s2', '4');
         *
         * var_dump($redis->sUnion('s0', 's1', 's2'));
         *
         * array(4) {
         * //  [0]=>
         * //  string(1) "3"
         * //  [1]=>
         * //  string(1) "4"
         * //  [2]=>
         * //  string(1) "1"
         * //  [3]=>
         * //  string(1) "2"
         * //}
         * 
    */
    public function sUnion($key1, ...$otherKeys) { } /** * Performs the same action as sUnion, but stores the result in the first key * * @param string $dstKey the key to store the diff into. * @param string $key1 first key for union * @param string ...$otherKeys variadic list of keys corresponding to sets in redis * * @return int Any number of keys corresponding to sets in redis * * @link https://redis.io/commands/sunionstore * @example *
         * $redis->del('s0', 's1', 's2');
         *
         * $redis->sAdd('s0', '1');
         * $redis->sAdd('s0', '2');
         * $redis->sAdd('s1', '3');
         * $redis->sAdd('s1', '1');
         * $redis->sAdd('s2', '3');
         * $redis->sAdd('s2', '4');
         *
         * var_dump($redis->sUnionStore('dst', 's0', 's1', 's2'));
         * var_dump($redis->sMembers('dst'));
         *
         * //int(4)
         * //array(4) {
         * //  [0]=>
         * //  string(1) "3"
         * //  [1]=>
         * //  string(1) "4"
         * //  [2]=>
         * //  string(1) "1"
         * //  [3]=>
         * //  string(1) "2"
         * //}
         * 
    */
    public function sUnionStore($dstKey, $key1, ...$otherKeys) { } /** * Performs the difference between N sets and returns it. * * @param string $key1 first key for diff * @param string ...$otherKeys variadic list of keys corresponding to sets in redis * * @return array string[] The difference of the first set will all the others * * @link https://redis.io/commands/sdiff * @example *
         * $redis->del('s0', 's1', 's2');
         *
         * $redis->sAdd('s0', '1');
         * $redis->sAdd('s0', '2');
         * $redis->sAdd('s0', '3');
         * $redis->sAdd('s0', '4');
         *
         * $redis->sAdd('s1', '1');
         * $redis->sAdd('s2', '3');
         *
         * var_dump($redis->sDiff('s0', 's1', 's2'));
         *
         * //array(2) {
         * //  [0]=>
         * //  string(1) "4"
         * //  [1]=>
         * //  string(1) "2"
         * //}
         * 
    */
    public function sDiff($key1, ...$otherKeys) { } /** * Performs the same action as sDiff, but stores the result in the first key * * @param string $dstKey the key to store the diff into. * @param string $key1 first key for diff * @param string ...$otherKeys variadic list of keys corresponding to sets in redis * * @return int|false The cardinality of the resulting set, or FALSE in case of a missing key * * @link https://redis.io/commands/sdiffstore * @example *
         * $redis->del('s0', 's1', 's2');
         *
         * $redis->sAdd('s0', '1');
         * $redis->sAdd('s0', '2');
         * $redis->sAdd('s0', '3');
         * $redis->sAdd('s0', '4');
         *
         * $redis->sAdd('s1', '1');
         * $redis->sAdd('s2', '3');
         *
         * var_dump($redis->sDiffStore('dst', 's0', 's1', 's2'));
         * var_dump($redis->sMembers('dst'));
         *
         * //int(2)
         * //array(2) {
         * //  [0]=>
         * //  string(1) "4"
         * //  [1]=>
         * //  string(1) "2"
         * //}
         * 
    */
    public function sDiffStore($dstKey, $key1, ...$otherKeys) { } /** * Returns the contents of a set. * * @param string $key * * @return array An array of elements, the contents of the set * * @link https://redis.io/commands/smembers * @example *
         * $redis->del('s');
         * $redis->sAdd('s', 'a');
         * $redis->sAdd('s', 'b');
         * $redis->sAdd('s', 'a');
         * $redis->sAdd('s', 'c');
         * var_dump($redis->sMembers('s'));
         *
         * //array(3) {
         * //  [0]=>
         * //  string(1) "c"
         * //  [1]=>
         * //  string(1) "a"
         * //  [2]=>
         * //  string(1) "b"
         * //}
         * // The order is random and corresponds to redis' own internal representation of the set structure.
         * 
    */
    public function sMembers($key) { } /** * @link https://redis.io/commands/smembers * * @param string $key * @return array An array of elements, the contents of the set */ #[Deprecated(replacement: '%class%->sMembers(%parametersList%)')] public function sGetMembers($key) { } /** * Scan a set for members * * @param string $key The set to search. * @param int &$iterator LONG (reference) to the iterator as we go. * @param string $pattern String, optional pattern to match against. * @param int $count How many members to return at a time (Redis might return a different amount) * * @return array|false PHPRedis will return an array of keys or FALSE when we're done iterating * * @link https://redis.io/commands/sscan * @example *
         * $iterator = null;
         * while ($members = $redis->sScan('set', $iterator)) {
         *     foreach ($members as $member) {
         *         echo $member . PHP_EOL;
         *     }
         * }
         * 
    */
    public function sScan($key, &$iterator, $pattern = null, $count = 0) { } /** * Sets a value and returns the previous entry at that key. * * @param string $key * @param string|mixed $value * * @return string|mixed A string (mixed, if used serializer), the previous value located at this key * * @link https://redis.io/commands/getset * @example *
         * $redis->set('x', '42');
         * $exValue = $redis->getSet('x', 'lol');   // return '42', replaces x by 'lol'
         * $newValue = $redis->get('x')'            // return 'lol'
         * 
    */
    public function getSet($key, $value) { } /** * Returns a random key * * @return string an existing key in redis * * @link https://redis.io/commands/randomkey * @example *
         * $key = $redis->randomKey();
         * $surprise = $redis->get($key);  // who knows what's in there.
         * 
    */
    public function randomKey() { } /** * Switches to a given database * * @param int $dbIndex * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/select * @example *
         * $redis->select(0);       // switch to DB 0
         * $redis->set('x', '42');  // write 42 to x
         * $redis->move('x', 1);    // move to DB 1
         * $redis->select(1);       // switch to DB 1
         * $redis->get('x');        // will return 42
         * 
    */
    public function select($dbIndex) { } /** * Moves a key to a different database. * * @param string $key * @param int $dbIndex * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/move * @example *
         * $redis->select(0);       // switch to DB 0
         * $redis->set('x', '42');  // write 42 to x
         * $redis->move('x', 1);    // move to DB 1
         * $redis->select(1);       // switch to DB 1
         * $redis->get('x');        // will return 42
         * 
    */
    public function move($key, $dbIndex) { } /** * Renames a key * * @param string $srcKey * @param string $dstKey * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/rename * @example *
         * $redis->set('x', '42');
         * $redis->rename('x', 'y');
         * $redis->get('y');   // → 42
         * $redis->get('x');   // → `FALSE`
         * 
    */
    public function rename($srcKey, $dstKey) { } /** * @link https://redis.io/commands/rename * * @param string $srcKey * @param string $dstKey */ #[Deprecated(replacement: '%class%->rename(%parametersList%)')] public function renameKey($srcKey, $dstKey) { } /** * Renames a key * * Same as rename, but will not replace a key if the destination already exists. * This is the same behaviour as setNx. * * @param string $srcKey * @param string $dstKey * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/renamenx * @example *
         * $redis->set('x', '42');
         * $redis->rename('x', 'y');
         * $redis->get('y');   // → 42
         * $redis->get('x');   // → `FALSE`
         * 
    */
    public function renameNx($srcKey, $dstKey) { } /** * Sets an expiration date (a timeout) on an item * * @param string $key The key that will disappear * @param int $ttl The key's remaining Time To Live, in seconds * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/expire * @example *
         * $redis->set('x', '42');
         * $redis->expire('x', 3);  // x will disappear in 3 seconds.
         * sleep(5);                    // wait 5 seconds
         * $redis->get('x');            // will return `FALSE`, as 'x' has expired.
         * 
    */
    public function expire($key, $ttl) { } /** * Sets an expiration date (a timeout in milliseconds) on an item * * @param string $key The key that will disappear. * @param int $ttl The key's remaining Time To Live, in milliseconds * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/pexpire * @example *
         * $redis->set('x', '42');
         * $redis->pExpire('x', 11500); // x will disappear in 11500 milliseconds.
         * $redis->ttl('x');            // 12
         * $redis->pttl('x');           // 11500
         * 
    */
    public function pExpire($key, $ttl) { } /** * @link https://redis.io/commands/expire * * @param string $key * @param int $ttl * @return bool */ #[Deprecated(replacement: '%class%->expire(%parametersList%)')] public function setTimeout($key, $ttl) { } /** * Sets an expiration date (a timestamp) on an item. * * @param string $key The key that will disappear. * @param int $timestamp Unix timestamp. The key's date of death, in seconds from Epoch time. * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/expireat * @example *
         * $redis->set('x', '42');
         * $now = time(NULL);               // current timestamp
         * $redis->expireAt('x', $now + 3); // x will disappear in 3 seconds.
         * sleep(5);                        // wait 5 seconds
         * $redis->get('x');                // will return `FALSE`, as 'x' has expired.
         * 
    */
    public function expireAt($key, $timestamp) { } /** * Sets an expiration date (a timestamp) on an item. Requires a timestamp in milliseconds * * @param string $key The key that will disappear * @param int $timestamp Unix timestamp. The key's date of death, in seconds from Epoch time * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/pexpireat * @example *
         * $redis->set('x', '42');
         * $redis->pExpireAt('x', 1555555555005);
         * echo $redis->ttl('x');                       // 218270121
         * echo $redis->pttl('x');                      // 218270120575
         * 
    */
    public function pExpireAt($key, $timestamp) { } /** * Returns the keys that match a certain pattern. * * @param string $pattern pattern, using '*' as a wildcard * * @return array string[] The keys that match a certain pattern. * * @link https://redis.io/commands/keys * @example *
         * $allKeys = $redis->keys('*');   // all keys will match this.
         * $keyWithUserPrefix = $redis->keys('user*');
         * 
    */
    public function keys($pattern) { } /** * @param string $pattern * @link https://redis.io/commands/keys */ #[Deprecated(replacement: '%class%->keys(%parametersList%)')] public function getKeys($pattern) { } /** * Returns the current database's size * * @return int DB size, in number of keys * * @link https://redis.io/commands/dbsize * @example *
         * $count = $redis->dbSize();
         * echo "Redis has $count keys\n";
         * 
    */
    public function dbSize() { } /** * Authenticate the connection using a password. * Warning: The password is sent in plain-text over the network. * * @param string $password * * @return bool TRUE if the connection is authenticated, FALSE otherwise * * @link https://redis.io/commands/auth * @example $redis->auth('foobared'); */ public function auth($password) { } /** * Starts the background rewrite of AOF (Append-Only File) * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/bgrewriteaof * @example $redis->bgrewriteaof(); */ public function bgrewriteaof() { } /** * Changes the slave status * Either host and port, or no parameter to stop being a slave. * * @param string $host [optional] * @param int $port [optional] * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/slaveof * @example *
         * $redis->slaveof('10.0.1.7', 6379);
         * // ...
         * $redis->slaveof();
         * 
    */
    public function slaveof($host = '127.0.0.1', $port = 6379) { } /** * Access the Redis slowLog * * @param string $operation This can be either GET, LEN, or RESET * @param int|null $length If executing a SLOWLOG GET command, you can pass an optional length. * * @return mixed The return value of SLOWLOG will depend on which operation was performed. * - SLOWLOG GET: Array of slowLog entries, as provided by Redis * - SLOGLOG LEN: Integer, the length of the slowLog * - SLOWLOG RESET: Boolean, depending on success * * @example *
         * // Get ten slowLog entries
         * $redis->slowLog('get', 10);
         * // Get the default number of slowLog entries
         *
         * $redis->slowLog('get');
         * // Reset our slowLog
         * $redis->slowLog('reset');
         *
         * // Retrieve slowLog length
         * $redis->slowLog('len');
         * 
    * * @link https://redis.io/commands/slowlog */
    public function slowLog(string $operation, int $length = null) { } /** * Describes the object pointed to by a key. * The information to retrieve (string) and the key (string). * Info can be one of the following: * - "encoding" * - "refcount" * - "idletime" * * @param string $string * @param string $key * * @return string|int|false for "encoding", int for "refcount" and "idletime", FALSE if the key doesn't exist. * * @link https://redis.io/commands/object * @example *
         * $redis->lPush('l', 'Hello, world!');
         * $redis->object("encoding", "l"); // → ziplist
         * $redis->object("refcount", "l"); // → 1
         * $redis->object("idletime", "l"); // → 400 (in seconds, with a precision of 10 seconds).
         * 
    */
    public function object($string = '', $key = '') { } /** * Performs a synchronous save. * * @return bool TRUE in case of success, FALSE in case of failure * If a save is already running, this command will fail and return FALSE. * * @link https://redis.io/commands/save * @example $redis->save(); */ public function save() { } /** * Performs a background save. * * @return bool TRUE in case of success, FALSE in case of failure * If a save is already running, this command will fail and return FALSE * * @link https://redis.io/commands/bgsave * @example $redis->bgSave(); */ public function bgsave() { } /** * Returns the timestamp of the last disk save. * * @return int timestamp * * @link https://redis.io/commands/lastsave * @example $redis->lastSave(); */ public function lastSave() { } /** * Blocks the current client until all the previous write commands are successfully transferred and * acknowledged by at least the specified number of slaves. * * @param int $numSlaves Number of slaves that need to acknowledge previous write commands. * @param int $timeout Timeout in milliseconds. * * @return int The command returns the number of slaves reached by all the writes performed in the * context of the current connection * * @link https://redis.io/commands/wait * @example $redis->wait(2, 1000); */ public function wait($numSlaves, $timeout) { } /** * Returns the type of data pointed by a given key. * * @param string $key * * @return int * Depending on the type of the data pointed by the key, * this method will return the following value: * - string: Redis::REDIS_STRING * - set: Redis::REDIS_SET * - list: Redis::REDIS_LIST * - zset: Redis::REDIS_ZSET * - hash: Redis::REDIS_HASH * - other: Redis::REDIS_NOT_FOUND * * @link https://redis.io/commands/type * @example $redis->type('key'); */ public function type($key) { } /** * Append specified string to the string stored in specified key. * * @param string $key * @param string|mixed $value * * @return int Size of the value after the append * * @link https://redis.io/commands/append * @example *
         * $redis->set('key', 'value1');
         * $redis->append('key', 'value2'); // 12
         * $redis->get('key');              // 'value1value2'
         * 
    */
    public function append($key, $value) { } /** * Return a substring of a larger string * * @param string $key * @param int $start * @param int $end * * @return string the substring * * @link https://redis.io/commands/getrange * @example *
         * $redis->set('key', 'string value');
         * $redis->getRange('key', 0, 5);   // 'string'
         * $redis->getRange('key', -5, -1); // 'value'
         * 
    */
    public function getRange($key, $start, $end) { } /** * Return a substring of a larger string * * @param string $key * @param int $start * @param int $end */ #[Deprecated] public function substr($key, $start, $end) { } /** * Changes a substring of a larger string. * * @param string $key * @param int $offset * @param string $value * * @return int the length of the string after it was modified * * @link https://redis.io/commands/setrange * @example *
         * $redis->set('key', 'Hello world');
         * $redis->setRange('key', 6, "redis"); // returns 11
         * $redis->get('key');                  // "Hello redis"
         * 
    */
    public function setRange($key, $offset, $value) { } /** * Get the length of a string value. * * @param string $key * @return int * * @link https://redis.io/commands/strlen * @example *
         * $redis->set('key', 'value');
         * $redis->strlen('key'); // 5
         * 
    */
    public function strlen($key) { } /** * Return the position of the first bit set to 1 or 0 in a string. The position is returned, thinking of the * string as an array of bits from left to right, where the first byte's most significant bit is at position 0, * the second byte's most significant bit is at position 8, and so forth. * * @param string $key * @param int $bit * @param int $start * @param int $end * * @return int The command returns the position of the first bit set to 1 or 0 according to the request. * If we look for set bits (the bit argument is 1) and the string is empty or composed of just * zero bytes, -1 is returned. If we look for clear bits (the bit argument is 0) and the string * only contains bit set to 1, the function returns the first bit not part of the string on the * right. So if the string is three bytes set to the value 0xff the command BITPOS key 0 will * return 24, since up to bit 23 all the bits are 1. Basically, the function considers the right * of the string as padded with zeros if you look for clear bits and specify no range or the * start argument only. However, this behavior changes if you are looking for clear bits and * specify a range with both start and end. If no clear bit is found in the specified range, the * function returns -1 as the user specified a clear range and there are no 0 bits in that range. * * @link https://redis.io/commands/bitpos * @example *
         * $redis->set('key', '\xff\xff');
         * $redis->bitpos('key', 1); // int(0)
         * $redis->bitpos('key', 1, 1); // int(8)
         * $redis->bitpos('key', 1, 3); // int(-1)
         * $redis->bitpos('key', 0); // int(16)
         * $redis->bitpos('key', 0, 1); // int(16)
         * $redis->bitpos('key', 0, 1, 5); // int(-1)
         * 
    */
    public function bitpos($key, $bit, $start = 0, $end = null) { } /** * Return a single bit out of a larger string * * @param string $key * @param int $offset * * @return int the bit value (0 or 1) * * @link https://redis.io/commands/getbit * @example *
         * $redis->set('key', "\x7f");  // this is 0111 1111
         * $redis->getBit('key', 0);    // 0
         * $redis->getBit('key', 1);    // 1
         * 
    */
    public function getBit($key, $offset) { } /** * Changes a single bit of a string. * * @param string $key * @param int $offset * @param bool|int $value bool or int (1 or 0) * * @return int 0 or 1, the value of the bit before it was set * * @link https://redis.io/commands/setbit * @example *
         * $redis->set('key', "*");     // ord("*") = 42 = 0x2f = "0010 1010"
         * $redis->setBit('key', 5, 1); // returns 0
         * $redis->setBit('key', 7, 1); // returns 0
         * $redis->get('key');          // chr(0x2f) = "/" = b("0010 1111")
         * 
    */
    public function setBit($key, $offset, $value) { } /** * Count bits in a string * * @param string $key * * @return int The number of bits set to 1 in the value behind the input key * * @link https://redis.io/commands/bitcount * @example *
         * $redis->set('bit', '345'); // // 11 0011  0011 0100  0011 0101
         * var_dump( $redis->bitCount('bit', 0, 0) ); // int(4)
         * var_dump( $redis->bitCount('bit', 1, 1) ); // int(3)
         * var_dump( $redis->bitCount('bit', 2, 2) ); // int(4)
         * var_dump( $redis->bitCount('bit', 0, 2) ); // int(11)
         * 
    */
    public function bitCount($key) { } /** * Bitwise operation on multiple keys. * * @param string $operation either "AND", "OR", "NOT", "XOR" * @param string $retKey return key * @param string $key1 first key * @param string ...$otherKeys variadic list of keys * * @return int The size of the string stored in the destination key * * @link https://redis.io/commands/bitop * @example *
         * $redis->set('bit1', '1'); // 11 0001
         * $redis->set('bit2', '2'); // 11 0010
         *
         * $redis->bitOp('AND', 'bit', 'bit1', 'bit2'); // bit = 110000
         * $redis->bitOp('OR',  'bit', 'bit1', 'bit2'); // bit = 110011
         * $redis->bitOp('NOT', 'bit', 'bit1', 'bit2'); // bit = 110011
         * $redis->bitOp('XOR', 'bit', 'bit1', 'bit2'); // bit = 11
         * 
    */
    public function bitOp($operation, $retKey, $key1, ...$otherKeys) { } /** * Removes all entries from the current database. * * @return bool Always TRUE * @link https://redis.io/commands/flushdb * @example $redis->flushDB(); */ public function flushDB() { } /** * Removes all entries from all databases. * * @return bool Always TRUE * * @link https://redis.io/commands/flushall * @example $redis->flushAll(); */ public function flushAll() { } /** * Sort * * @param string $key * @param array $option array(key => value, ...) - optional, with the following keys and values: * - 'by' => 'some_pattern_*', * - 'limit' => array(0, 1), * - 'get' => 'some_other_pattern_*' or an array of patterns, * - 'sort' => 'asc' or 'desc', * - 'alpha' => TRUE, * - 'store' => 'external-key' * * @return array * An array of values, or a number corresponding to the number of elements stored if that was used * * @link https://redis.io/commands/sort * @example *
         * $redis->del('s');
         * $redis->sadd('s', 5);
         * $redis->sadd('s', 4);
         * $redis->sadd('s', 2);
         * $redis->sadd('s', 1);
         * $redis->sadd('s', 3);
         *
         * var_dump($redis->sort('s')); // 1,2,3,4,5
         * var_dump($redis->sort('s', array('sort' => 'desc'))); // 5,4,3,2,1
         * var_dump($redis->sort('s', array('sort' => 'desc', 'store' => 'out'))); // (int)5
         * 
    */
    public function sort($key, $option = null) { } /** * Returns an associative array of strings and integers * * @param string $option Optional. The option to provide redis. * SERVER | CLIENTS | MEMORY | PERSISTENCE | STATS | REPLICATION | CPU | CLASTER | KEYSPACE | COMANDSTATS * * Returns an associative array of strings and integers, with the following keys: * - redis_version * - redis_git_sha1 * - redis_git_dirty * - arch_bits * - multiplexing_api * - process_id * - uptime_in_seconds * - uptime_in_days * - lru_clock * - used_cpu_sys * - used_cpu_user * - used_cpu_sys_children * - used_cpu_user_children * - connected_clients * - connected_slaves * - client_longest_output_list * - client_biggest_input_buf * - blocked_clients * - used_memory * - used_memory_human * - used_memory_peak * - used_memory_peak_human * - mem_fragmentation_ratio * - mem_allocator * - loading * - aof_enabled * - changes_since_last_save * - bgsave_in_progress * - last_save_time * - total_connections_received * - total_commands_processed * - expired_keys * - evicted_keys * - keyspace_hits * - keyspace_misses * - hash_max_zipmap_entries * - hash_max_zipmap_value * - pubsub_channels * - pubsub_patterns * - latest_fork_usec * - vm_enabled * - role * * @return string * * @link https://redis.io/commands/info * @example *
         * $redis->info();
         *
         * or
         *
         * $redis->info("COMMANDSTATS"); //Information on the commands that have been run (>=2.6 only)
         * $redis->info("CPU"); // just CPU information from Redis INFO
         * 
    */
    public function info($option = null) { } /** * Resets the statistics reported by Redis using the INFO command (`info()` function). * These are the counters that are reset: * - Keyspace hits * - Keyspace misses * - Number of commands processed * - Number of connections received * - Number of expired keys * * @return bool `TRUE` in case of success, `FALSE` in case of failure. * * @example $redis->resetStat(); * @link https://redis.io/commands/config-resetstat */ public function resetStat() { } /** * Returns the time to live left for a given key, in seconds. If the key doesn't exist, FALSE is returned. * * @param string $key * * @return int|bool the time left to live in seconds * * @link https://redis.io/commands/ttl * @example *
         * $redis->setex('key', 123, 'test');
         * $redis->ttl('key'); // int(123)
         * 
    */
    public function ttl($key) { } /** * Returns a time to live left for a given key, in milliseconds. * * If the key doesn't exist, FALSE is returned. * * @param string $key * * @return int|bool the time left to live in milliseconds * * @link https://redis.io/commands/pttl * @example *
         * $redis->setex('key', 123, 'test');
         * $redis->pttl('key'); // int(122999)
         * 
    */
    public function pttl($key) { } /** * Remove the expiration timer from a key. * * @param string $key * * @return bool TRUE if a timeout was removed, FALSE if the key didn’t exist or didn’t have an expiration timer. * * @link https://redis.io/commands/persist * @example $redis->persist('key'); */ public function persist($key) { } /** * Sets multiple key-value pairs in one atomic command. * MSETNX only returns TRUE if all the keys were set (see SETNX). * * @param array $array Pairs: array(key => value, ...) * * @return bool TRUE in case of success, FALSE in case of failure * * @link https://redis.io/commands/mset * @example *
         * $redis->mset(array('key0' => 'value0', 'key1' => 'value1'));
         * var_dump($redis->get('key0'));
         * var_dump($redis->get('key1'));
         * // Output:
         * // string(6) "value0"
         * // string(6) "value1"
         * 
    */
    public function mset(array $array) { } /** * Get the values of all the specified keys. * If one or more keys dont exist, the array will contain FALSE at the position of the key. * * @param array $keys Array containing the list of the keys * * @return array Array containing the values related to keys in argument * * @example *
         * $redis->set('key1', 'value1');
         * $redis->set('key2', 'value2');
         * $redis->set('key3', 'value3');
         * $redis->getMultiple(array('key1', 'key2', 'key3')); // array('value1', 'value2', 'value3');
         * $redis->getMultiple(array('key0', 'key1', 'key5')); // array(`FALSE`, 'value2', `FALSE`);
         * 
    */
    #[Deprecated(replacement: '%class%->mGet(%parametersList%)')] public function getMultiple(array $keys) { } /** * Returns the values of all specified keys. * * For every key that does not hold a string value or does not exist, * the special value false is returned. Because of this, the operation never fails. * * @param array $array * * @return array * * @link https://redis.io/commands/mget * @example *
         * $redis->del('x', 'y', 'z', 'h');  // remove x y z
         * $redis->mset(array('x' => 'a', 'y' => 'b', 'z' => 'c'));
         * $redis->hset('h', 'field', 'value');
         * var_dump($redis->mget(array('x', 'y', 'z', 'h')));
         * // Output:
         * // array(3) {
         * //   [0]=> string(1) "a"
         * //   [1]=> string(1) "b"
         * //   [2]=> string(1) "c"
         * //   [3]=> bool(false)
         * // }
         * 
    */
    public function mget(array $array) { } /** * @see mset() * @param array $array * @return int 1 (if the keys were set) or 0 (no key was set) * * @link https://redis.io/commands/msetnx */ public function msetnx(array $array) { } /** * Pops a value from the tail of a list, and pushes it to the front of another list. * Also return this value. * * @since redis >= 1.1 * * @param string $srcKey * @param string $dstKey * * @return string|mixed|false The element that was moved in case of success, FALSE in case of failure. * * @link https://redis.io/commands/rpoplpush * @example *
         * $redis->del('x', 'y');
         *
         * $redis->lPush('x', 'abc');
         * $redis->lPush('x', 'def');
         * $redis->lPush('y', '123');
         * $redis->lPush('y', '456');
         *
         * // move the last of x to the front of y.
         * var_dump($redis->rpoplpush('x', 'y'));
         * var_dump($redis->lRange('x', 0, -1));
         * var_dump($redis->lRange('y', 0, -1));
         *
         * //Output:
         * //
         * //string(3) "abc"
         * //array(1) {
         * //  [0]=>
         * //  string(3) "def"
         * //}
         * //array(3) {
         * //  [0]=>
         * //  string(3) "abc"
         * //  [1]=>
         * //  string(3) "456"
         * //  [2]=>
         * //  string(3) "123"
         * //}
         * 
    */
    public function rpoplpush($srcKey, $dstKey) { } /** * A blocking version of rpoplpush, with an integral timeout in the third parameter. * * @param string $srcKey * @param string $dstKey * @param int $timeout * * @return string|mixed|bool The element that was moved in case of success, FALSE in case of timeout * * @link https://redis.io/commands/brpoplpush */ public function brpoplpush($srcKey, $dstKey, $timeout) { } /** * Adds the specified member with a given score to the sorted set stored at key * * @param string $key Required key * @param array|float $options Options if needed or score if omitted * @param float|string|mixed $score1 Required score or value if options omitted * @param string|float|mixed $value1 Required value or optional score if options omitted * @param float|string|mixed $score2 Optional score or value if options omitted * @param string|float|mixed $value2 Optional value or score if options omitted * @param float|string|mixed $scoreN Optional score or value if options omitted * @param string|float|mixed $valueN Optional value or score if options omitted * * @return int Number of values added * * @link https://redis.io/commands/zadd * @example *
         * 
         * $redis->zAdd('z', 1, 'v1', 2, 'v2', 3, 'v3', 4, 'v4' );  // int(2)
         * $redis->zRem('z', 'v2', 'v3');                           // int(2)
         * $redis->zAdd('z', ['NX'], 5, 'v5');                      // int(1)
         * $redis->zAdd('z', ['NX'], 6, 'v5');                      // int(0)
         * $redis->zAdd('z', 7, 'v6');                              // int(1)
         * $redis->zAdd('z', 8, 'v6');                              // int(0)
         *
         * var_dump( $redis->zRange('z', 0, -1) );
         * // Output:
         * // array(4) {
         * //   [0]=> string(2) "v1"
         * //   [1]=> string(2) "v4"
         * //   [2]=> string(2) "v5"
         * //   [3]=> string(2) "v8"
         * // }
         *
         * var_dump( $redis->zRange('z', 0, -1, true) );
         * // Output:
         * // array(4) {
         * //   ["v1"]=> float(1)
         * //   ["v4"]=> float(4)
         * //   ["v5"]=> float(5)
         * //   ["v6"]=> float(8)
         * 
    *
    */
    public function zAdd($key, $options, $score1, $value1 = null, $score2 = null, $value2 = null, $scoreN = null, $valueN = null) { } /** * Returns a range of elements from the ordered set stored at the specified key, * with values in the range [start, end]. start and stop are interpreted as zero-based indices: * 0 the first element, * 1 the second ... * -1 the last element, * -2 the penultimate ... * * @param string $key * @param int $start * @param int $end * @param bool $withscores * * @return array Array containing the values in specified range. * * @link https://redis.io/commands/zrange * @example *
         * $redis->zAdd('key1', 0, 'val0');
         * $redis->zAdd('key1', 2, 'val2');
         * $redis->zAdd('key1', 10, 'val10');
         * $redis->zRange('key1', 0, -1); // array('val0', 'val2', 'val10')
         * // with scores
         * $redis->zRange('key1', 0, -1, true); // array('val0' => 0, 'val2' => 2, 'val10' => 10)
         * 
    */
    public function zRange($key, $start, $end, $withscores = null) { } /** * Deletes a specified member from the ordered set. * * @param string $key * @param string|mixed $member1 * @param string|mixed ...$otherMembers * * @return int Number of deleted values * * @link https://redis.io/commands/zrem * @example *
         * $redis->zAdd('z', 1, 'v1', 2, 'v2', 3, 'v3', 4, 'v4' );  // int(2)
         * $redis->zRem('z', 'v2', 'v3');                           // int(2)
         * var_dump( $redis->zRange('z', 0, -1) );
         *  Output:
         * // array(2) {
         * //   [0]=> string(2) "v1"
         * //   [1]=> string(2) "v4"
         * // }
         * 
    */
    public function zRem($key, $member1, ...$otherMembers) { } /** * @link https://redis.io/commands/zrem * * @param string $key * @param string|mixed $member1 * @param string|mixed ...$otherMembers * * @return int Number of deleted values */ #[Deprecated(replacement: '%class%->zRem(%parametersList%)')] public function zDelete($key, $member1, ...$otherMembers) { } /** * Returns the elements of the sorted set stored at the specified key in the range [start, end] * in reverse order. start and stop are interpretated as zero-based indices: * 0 the first element, * 1 the second ... * -1 the last element, * -2 the penultimate ... * * @param string $key * @param int $start * @param int $end * @param bool $withscore * * @return array Array containing the values in specified range. * * @link https://redis.io/commands/zrevrange * @example *
         * $redis->zAdd('key', 0, 'val0');
         * $redis->zAdd('key', 2, 'val2');
         * $redis->zAdd('key', 10, 'val10');
         * $redis->zRevRange('key', 0, -1); // array('val10', 'val2', 'val0')
         *
         * // with scores
         * $redis->zRevRange('key', 0, -1, true); // array('val10' => 10, 'val2' => 2, 'val0' => 0)
         * 
    */
    public function zRevRange($key, $start, $end, $withscore = null) { } /** * Returns the elements of the sorted set stored at the specified key which have scores in the * range [start,end]. Adding a parenthesis before start or end excludes it from the range. * +inf and -inf are also valid limits. * * zRevRangeByScore returns the same items in reverse order, when the start and end parameters are swapped. * * @param string $key * @param int $start * @param int $end * @param array $options Two options are available: * - withscores => TRUE, * - and limit => array($offset, $count) * * @return array Array containing the values in specified range. * * @link https://redis.io/commands/zrangebyscore * @example *
         * $redis->zAdd('key', 0, 'val0');
         * $redis->zAdd('key', 2, 'val2');
         * $redis->zAdd('key', 10, 'val10');
         * $redis->zRangeByScore('key', 0, 3);                                          // array('val0', 'val2')
         * $redis->zRangeByScore('key', 0, 3, array('withscores' => TRUE);              // array('val0' => 0, 'val2' => 2)
         * $redis->zRangeByScore('key', 0, 3, array('limit' => array(1, 1));                        // array('val2')
         * $redis->zRangeByScore('key', 0, 3, array('withscores' => TRUE, 'limit' => array(1, 1));  // array('val2' => 2)
         * 
    */
    public function zRangeByScore($key, $start, $end, array $options = array()) { } /** * @see zRangeByScore() * @param string $key * @param int $start * @param int $end * @param array $options * * @return array */ public function zRevRangeByScore($key, $start, $end, array $options = array()) { } /** * Returns a lexigraphical range of members in a sorted set, assuming the members have the same score. The * min and max values are required to start with '(' (exclusive), '[' (inclusive), or be exactly the values * '-' (negative inf) or '+' (positive inf). The command must be called with either three *or* five * arguments or will return FALSE. * * @param string $key The ZSET you wish to run against. * @param int $min The minimum alphanumeric value you wish to get. * @param int $max The maximum alphanumeric value you wish to get. * @param int $offset Optional argument if you wish to start somewhere other than the first element. * @param int $limit Optional argument if you wish to limit the number of elements returned. * * @return array|bool Array containing the values in the specified range. * * @link https://redis.io/commands/zrangebylex * @example *
         * foreach (array('a', 'b', 'c', 'd', 'e', 'f', 'g') as $char) {
         *     $redis->zAdd('key', $char);
         * }
         *
         * $redis->zRangeByLex('key', '-', '[c'); // array('a', 'b', 'c')
         * $redis->zRangeByLex('key', '-', '(c'); // array('a', 'b')
         * $redis->zRangeByLex('key', '-', '[c'); // array('b', 'c')
         * 
    */
    public function zRangeByLex($key, $min, $max, $offset = null, $limit = null) { } /** * @see zRangeByLex() * @param string $key * @param int $min * @param int $max * @param int $offset * @param int $limit * * @return array * * @link https://redis.io/commands/zrevrangebylex */ public function zRevRangeByLex($key, $min, $max, $offset = null, $limit = null) { } /** * Returns the number of elements of the sorted set stored at the specified key which have * scores in the range [start,end]. Adding a parenthesis before start or end excludes it * from the range. +inf and -inf are also valid limits. * * @param string $key * @param string $start * @param string $end * * @return int the size of a corresponding zRangeByScore * * @link https://redis.io/commands/zcount * @example *
         * $redis->zAdd('key', 0, 'val0');
         * $redis->zAdd('key', 2, 'val2');
         * $redis->zAdd('key', 10, 'val10');
         * $redis->zCount('key', 0, 3); // 2, corresponding to array('val0', 'val2')
         * 
    */
    public function zCount($key, $start, $end) { } /** * Deletes the elements of the sorted set stored at the specified key which have scores in the range [start,end]. * * @param string $key * @param float|string $start double or "+inf" or "-inf" string * @param float|string $end double or "+inf" or "-inf" string * * @return int The number of values deleted from the sorted set * * @link https://redis.io/commands/zremrangebyscore * @example *
         * $redis->zAdd('key', 0, 'val0');
         * $redis->zAdd('key', 2, 'val2');
         * $redis->zAdd('key', 10, 'val10');
         * $redis->zRemRangeByScore('key', 0, 3); // 2
         * 
    */
    public function zRemRangeByScore($key, $start, $end) { } /** * @param string $key * @param float $start * @param float $end */ #[Deprecated(replacement: '%class%->zRemRangeByScore(%parametersList%)')] public function zDeleteRangeByScore($key, $start, $end) { } /** * Deletes the elements of the sorted set stored at the specified key which have rank in the range [start,end]. * * @param string $key * @param int $start * @param int $end * * @return int The number of values deleted from the sorted set * * @link https://redis.io/commands/zremrangebyrank * @example *
         * $redis->zAdd('key', 1, 'one');
         * $redis->zAdd('key', 2, 'two');
         * $redis->zAdd('key', 3, 'three');
         * $redis->zRemRangeByRank('key', 0, 1); // 2
         * $redis->zRange('key', 0, -1, array('withscores' => TRUE)); // array('three' => 3)
         * 
    */
    public function zRemRangeByRank($key, $start, $end) { } /** * @link https://redis.io/commands/zremrangebyscore * * @param string $key * @param int $start * @param int $end */ #[Deprecated(replacement: '%class%->zRemRangeByRank(%parametersList%)')] public function zDeleteRangeByRank($key, $start, $end) { } /** * Returns the cardinality of an ordered set. * * @param string $key * * @return int the set's cardinality * * @link https://redis.io/commands/zsize * @example *
         * $redis->zAdd('key', 0, 'val0');
         * $redis->zAdd('key', 2, 'val2');
         * $redis->zAdd('key', 10, 'val10');
         * $redis->zCard('key');            // 3
         * 
    */
    public function zCard($key) { } /** * @param string $key * @return int */ #[Deprecated(replacement: '%class%->zCard(%parametersList%)')] public function zSize($key) { } /** * Returns the score of a given member in the specified sorted set. * * @param string $key * @param string|mixed $member * * @return float|bool false if member or key not exists * * @link https://redis.io/commands/zscore * @example *
         * $redis->zAdd('key', 2.5, 'val2');
         * $redis->zScore('key', 'val2'); // 2.5
         * 
    */
    public function zScore($key, $member) { } /** * Returns the rank of a given member in the specified sorted set, starting at 0 for the item * with the smallest score. zRevRank starts at 0 for the item with the largest score. * * @param string $key * @param string|mixed $member * * @return int|false the item's score, or false if key or member is not exists * * @link https://redis.io/commands/zrank * @example *
         * $redis->del('z');
         * $redis->zAdd('key', 1, 'one');
         * $redis->zAdd('key', 2, 'two');
         * $redis->zRank('key', 'one');     // 0
         * $redis->zRank('key', 'two');     // 1
         * $redis->zRevRank('key', 'one');  // 1
         * $redis->zRevRank('key', 'two');  // 0
         * 
    */
    public function zRank($key, $member) { } /** * @see zRank() * @param string $key * @param string|mixed $member * * @return int|false the item's score, false - if key or member is not exists * * @link https://redis.io/commands/zrevrank */ public function zRevRank($key, $member) { } /** * Increments the score of a member from a sorted set by a given amount. * * @param string $key * @param float $value (double) value that will be added to the member's score * @param string $member * * @return float the new value * * @link https://redis.io/commands/zincrby * @example *
         * $redis->del('key');
         * $redis->zIncrBy('key', 2.5, 'member1');  // key or member1 didn't exist, so member1's score is to 0
         *                                          // before the increment and now has the value 2.5
         * $redis->zIncrBy('key', 1, 'member1');    // 3.5
         * 
    */
    public function zIncrBy($key, $value, $member) { } /** * Creates an union of sorted sets given in second argument. * The result of the union will be stored in the sorted set defined by the first argument. * The third optionnel argument defines weights to apply to the sorted sets in input. * In this case, the weights will be multiplied by the score of each element in the sorted set * before applying the aggregation. The forth argument defines the AGGREGATE option which * specify how the results of the union are aggregated. * * @param string $output * @param array $zSetKeys * @param array $weights * @param string $aggregateFunction Either "SUM", "MIN", or "MAX": defines the behaviour to use on * duplicate entries during the zUnionStore * * @return int The number of values in the new sorted set * * @link https://redis.io/commands/zunionstore * @example *
         * $redis->del('k1');
         * $redis->del('k2');
         * $redis->del('k3');
         * $redis->del('ko1');
         * $redis->del('ko2');
         * $redis->del('ko3');
         *
         * $redis->zAdd('k1', 0, 'val0');
         * $redis->zAdd('k1', 1, 'val1');
         *
         * $redis->zAdd('k2', 2, 'val2');
         * $redis->zAdd('k2', 3, 'val3');
         *
         * $redis->zUnionStore('ko1', array('k1', 'k2')); // 4, 'ko1' => array('val0', 'val1', 'val2', 'val3')
         *
         * // Weighted zUnionStore
         * $redis->zUnionStore('ko2', array('k1', 'k2'), array(1, 1)); // 4, 'ko2' => array('val0', 'val1', 'val2', 'val3')
         * $redis->zUnionStore('ko3', array('k1', 'k2'), array(5, 1)); // 4, 'ko3' => array('val0', 'val2', 'val3', 'val1')
         * 
    */
    public function zUnionStore($output, $zSetKeys, array $weights = null, $aggregateFunction = 'SUM') { } /** * @param string $Output * @param array $ZSetKeys * @param array|null $Weights * @param string $aggregateFunction */ #[Deprecated(replacement: '%class%->zUnionStore(%parametersList%)')] public function zUnion($Output, $ZSetKeys, array $Weights = null, $aggregateFunction = 'SUM') { } /** * Creates an intersection of sorted sets given in second argument. * The result of the union will be stored in the sorted set defined by the first argument. * The third optional argument defines weights to apply to the sorted sets in input. * In this case, the weights will be multiplied by the score of each element in the sorted set * before applying the aggregation. The forth argument defines the AGGREGATE option which * specify how the results of the union are aggregated. * * @param string $output * @param array $zSetKeys * @param array $weights * @param string $aggregateFunction Either "SUM", "MIN", or "MAX": * defines the behaviour to use on duplicate entries during the zInterStore. * * @return int The number of values in the new sorted set. * * @link https://redis.io/commands/zinterstore * @example *
         * $redis->del('k1');
         * $redis->del('k2');
         * $redis->del('k3');
         *
         * $redis->del('ko1');
         * $redis->del('ko2');
         * $redis->del('ko3');
         * $redis->del('ko4');
         *
         * $redis->zAdd('k1', 0, 'val0');
         * $redis->zAdd('k1', 1, 'val1');
         * $redis->zAdd('k1', 3, 'val3');
         *
         * $redis->zAdd('k2', 2, 'val1');
         * $redis->zAdd('k2', 3, 'val3');
         *
         * $redis->zInterStore('ko1', array('k1', 'k2'));               // 2, 'ko1' => array('val1', 'val3')
         * $redis->zInterStore('ko2', array('k1', 'k2'), array(1, 1));  // 2, 'ko2' => array('val1', 'val3')
         *
         * // Weighted zInterStore
         * $redis->zInterStore('ko3', array('k1', 'k2'), array(1, 5), 'min'); // 2, 'ko3' => array('val1', 'val3')
         * $redis->zInterStore('ko4', array('k1', 'k2'), array(1, 5), 'max'); // 2, 'ko4' => array('val3', 'val1')
         * 
    */
    public function zInterStore($output, $zSetKeys, array $weights = null, $aggregateFunction = 'SUM') { } /** * @param $Output * @param $ZSetKeys * @param array|null $Weights * @param string $aggregateFunction */ #[Deprecated(replacement: '%class%->zInterStore(%parametersList%)')] public function zInter($Output, $ZSetKeys, array $Weights = null, $aggregateFunction = 'SUM') { } /** * Scan a sorted set for members, with optional pattern and count * * @param string $key String, the set to scan. * @param int &$iterator Long (reference), initialized to NULL. * @param string $pattern String (optional), the pattern to match. * @param int $count How many keys to return per iteration (Redis might return a different number). * * @return array|false PHPRedis will return matching keys from Redis, or FALSE when iteration is complete * * @link https://redis.io/commands/zscan * @example *
         * $iterator = null;
         * while ($members = $redis-zscan('zset', $iterator)) {
         *     foreach ($members as $member => $score) {
         *         echo $member . ' => ' . $score . PHP_EOL;
         *     }
         * }
         * 
    */
    public function zScan($key, &$iterator, $pattern = null, $count = 0) { } /** * Block until Redis can pop the highest or lowest scoring members from one or more ZSETs. * There are two commands (BZPOPMIN and BZPOPMAX for popping the lowest and highest scoring elements respectively.) * * @param string|array $key1 * @param string|array $key2 ... * @param int $timeout * * @return array Either an array with the key member and score of the highest or lowest element or an empty array * if the timeout was reached without an element to pop. * * @since >= 5.0 * @link https://redis.io/commands/bzpopmax * @example *
         * // Wait up to 5 seconds to pop the *lowest* scoring member from sets `zs1` and `zs2`.
         * $redis->bzPopMin(['zs1', 'zs2'], 5);
         * $redis->bzPopMin('zs1', 'zs2', 5);
         *
         * // Wait up to 5 seconds to pop the *highest* scoring member from sets `zs1` and `zs2`
         * $redis->bzPopMax(['zs1', 'zs2'], 5);
         * $redis->bzPopMax('zs1', 'zs2', 5);
         * 
    */
    public function bzPopMax($key1, $key2, $timeout) { } /** * @param string|array $key1 * @param string|array $key2 ... * @param int $timeout * * @return array Either an array with the key member and score of the highest or lowest element or an empty array * if the timeout was reached without an element to pop. * * @see bzPopMax * @since >= 5.0 * @link https://redis.io/commands/bzpopmin */ public function bzPopMin($key1, $key2, $timeout) { } /** * Can pop the highest scoring members from one ZSET. * * @param string $key * @param int $count * * @return array Either an array with the key member and score of the highest element or an empty array * if there is no element to pop. * * @since >= 5.0 * @link https://redis.io/commands/zpopmax * @example *
         * // Pop the *lowest* scoring member from set `zs1`.
         * $redis->zPopMax('zs1');
         * // Pop the *lowest* 3 scoring member from set `zs1`.
         * $redis->zPopMax('zs1', 3);
         * 
    */
    public function zPopMax($key, $count = 1) { } /** * Can pop the lowest scoring members from one ZSET. * * @param string $key * @param int $count * * @return array Either an array with the key member and score of the lowest element or an empty array * if there is no element to pop. * * @since >= 5.0 * @link https://redis.io/commands/zpopmin * @example *
         * // Pop the *lowest* scoring member from set `zs1`.
         * $redis->zPopMin('zs1');
         * // Pop the *lowest* 3 scoring member from set `zs1`.
         * $redis->zPopMin('zs1', 3);
         * 
    */
    public function zPopMin($key, $count = 1) { } /** * Adds a value to the hash stored at key. If this value is already in the hash, FALSE is returned. * * @param string $key * @param string $hashKey * @param string $value * * @return int|bool * - 1 if value didn't exist and was added successfully, * - 0 if the value was already present and was replaced, FALSE if there was an error. * * @link https://redis.io/commands/hset * @example *
         * $redis->del('h')
         * $redis->hSet('h', 'key1', 'hello');  // 1, 'key1' => 'hello' in the hash at "h"
         * $redis->hGet('h', 'key1');           // returns "hello"
         *
         * $redis->hSet('h', 'key1', 'plop');   // 0, value was replaced.
         * $redis->hGet('h', 'key1');           // returns "plop"
         * 
    */
    public function hSet($key, $hashKey, $value) { } /** * Adds a value to the hash stored at key only if this field isn't already in the hash. * * @param string $key * @param string $hashKey * @param string $value * * @return bool TRUE if the field was set, FALSE if it was already present. * * @link https://redis.io/commands/hsetnx * @example *
         * $redis->del('h')
         * $redis->hSetNx('h', 'key1', 'hello'); // TRUE, 'key1' => 'hello' in the hash at "h"
         * $redis->hSetNx('h', 'key1', 'world'); // FALSE, 'key1' => 'hello' in the hash at "h". No change since the field
         * wasn't replaced.
         * 
    */
    public function hSetNx($key, $hashKey, $value) { } /** * Gets a value from the hash stored at key. * If the hash table doesn't exist, or the key doesn't exist, FALSE is returned. * * @param string $key * @param string $hashKey * * @return string|false The value, if the command executed successfully BOOL FALSE in case of failure * * @link https://redis.io/commands/hget */ public function hGet($key, $hashKey) { } /** * Returns the length of a hash, in number of items * * @param string $key * * @return int|false the number of items in a hash, FALSE if the key doesn't exist or isn't a hash * * @link https://redis.io/commands/hlen * @example *
         * $redis->del('h')
         * $redis->hSet('h', 'key1', 'hello');
         * $redis->hSet('h', 'key2', 'plop');
         * $redis->hLen('h'); // returns 2
         * 
    */
    public function hLen($key) { } /** * Removes a values from the hash stored at key. * If the hash table doesn't exist, or the key doesn't exist, FALSE is returned. * * @param string $key * @param string $hashKey1 * @param string ...$otherHashKeys * * @return int|bool Number of deleted fields * * @link https://redis.io/commands/hdel * @example *
         * $redis->hMSet('h',
         *               array(
         *                    'f1' => 'v1',
         *                    'f2' => 'v2',
         *                    'f3' => 'v3',
         *                    'f4' => 'v4',
         *               ));
         *
         * var_dump( $redis->hDel('h', 'f1') );        // int(1)
         * var_dump( $redis->hDel('h', 'f2', 'f3') );  // int(2)
         * s
         * var_dump( $redis->hGetAll('h') );
         *  Output:
         * //  array(1) {
         * //    ["f4"]=> string(2) "v4"
         * //  }
         * 
    */
    public function hDel($key, $hashKey1, ...$otherHashKeys) { } /** * Returns the keys in a hash, as an array of strings. * * @param string $key * * @return array An array of elements, the keys of the hash. This works like PHP's array_keys(). * * @link https://redis.io/commands/hkeys * @example *
         * $redis->del('h');
         * $redis->hSet('h', 'a', 'x');
         * $redis->hSet('h', 'b', 'y');
         * $redis->hSet('h', 'c', 'z');
         * $redis->hSet('h', 'd', 't');
         * var_dump($redis->hKeys('h'));
         *
         * // Output:
         * // array(4) {
         * // [0]=>
         * // string(1) "a"
         * // [1]=>
         * // string(1) "b"
         * // [2]=>
         * // string(1) "c"
         * // [3]=>
         * // string(1) "d"
         * // }
         * // The order is random and corresponds to redis' own internal representation of the set structure.
         * 
    */
    public function hKeys($key) { } /** * Returns the values in a hash, as an array of strings. * * @param string $key * * @return array An array of elements, the values of the hash. This works like PHP's array_values(). * * @link https://redis.io/commands/hvals * @example *
         * $redis->del('h');
         * $redis->hSet('h', 'a', 'x');
         * $redis->hSet('h', 'b', 'y');
         * $redis->hSet('h', 'c', 'z');
         * $redis->hSet('h', 'd', 't');
         * var_dump($redis->hVals('h'));
         *
         * // Output
         * // array(4) {
         * //   [0]=>
         * //   string(1) "x"
         * //   [1]=>
         * //   string(1) "y"
         * //   [2]=>
         * //   string(1) "z"
         * //   [3]=>
         * //   string(1) "t"
         * // }
         * // The order is random and corresponds to redis' own internal representation of the set structure.
         * 
    */
    public function hVals($key) { } /** * Returns the whole hash, as an array of strings indexed by strings. * * @param string $key * * @return array An array of elements, the contents of the hash. * * @link https://redis.io/commands/hgetall * @example *
         * $redis->del('h');
         * $redis->hSet('h', 'a', 'x');
         * $redis->hSet('h', 'b', 'y');
         * $redis->hSet('h', 'c', 'z');
         * $redis->hSet('h', 'd', 't');
         * var_dump($redis->hGetAll('h'));
         *
         * // Output:
         * // array(4) {
         * //   ["a"]=>
         * //   string(1) "x"
         * //   ["b"]=>
         * //   string(1) "y"
         * //   ["c"]=>
         * //   string(1) "z"
         * //   ["d"]=>
         * //   string(1) "t"
         * // }
         * // The order is random and corresponds to redis' own internal representation of the set structure.
         * 
    */
    public function hGetAll($key) { } /** * Verify if the specified member exists in a key. * * @param string $key * @param string $hashKey * * @return bool If the member exists in the hash table, return TRUE, otherwise return FALSE. * * @link https://redis.io/commands/hexists * @example *
         * $redis->hSet('h', 'a', 'x');
         * $redis->hExists('h', 'a');               //  TRUE
         * $redis->hExists('h', 'NonExistingKey');  // FALSE
         * 
    */
    public function hExists($key, $hashKey) { } /** * Increments the value of a member from a hash by a given amount. * * @param string $key * @param string $hashKey * @param int $value (integer) value that will be added to the member's value * * @return int the new value * * @link https://redis.io/commands/hincrby * @example *
         * $redis->del('h');
         * $redis->hIncrBy('h', 'x', 2); // returns 2: h[x] = 2 now.
         * $redis->hIncrBy('h', 'x', 1); // h[x] ← 2 + 1. Returns 3
         * 
    */
    public function hIncrBy($key, $hashKey, $value) { } /** * Increment the float value of a hash field by the given amount * * @param string $key * @param string $field * @param float $increment * * @return float * * @link https://redis.io/commands/hincrbyfloat * @example *
         * $redis = new Redis();
         * $redis->connect('127.0.0.1');
         * $redis->hset('h', 'float', 3);
         * $redis->hset('h', 'int',   3);
         * var_dump( $redis->hIncrByFloat('h', 'float', 1.5) ); // float(4.5)
         *
         * var_dump( $redis->hGetAll('h') );
         *
         * // Output
         *  array(2) {
         *    ["float"]=>
         *    string(3) "4.5"
         *    ["int"]=>
         *    string(1) "3"
         *  }
         * 
    */
    public function hIncrByFloat($key, $field, $increment) { } /** * Fills in a whole hash. Non-string values are converted to string, using the standard (string) cast. * NULL values are stored as empty strings * * @param string $key * @param array $hashKeys key → value array * * @return bool * * @link https://redis.io/commands/hmset * @example *
         * $redis->del('user:1');
         * $redis->hMSet('user:1', array('name' => 'Joe', 'salary' => 2000));
         * $redis->hIncrBy('user:1', 'salary', 100); // Joe earns 100 more now.
         * 
    */
    public function hMSet($key, $hashKeys) { } /** * Retrieve the values associated to the specified fields in the hash. * * @param string $key * @param array $hashKeys * * @return array Array An array of elements, the values of the specified fields in the hash, * with the hash keys as array keys. * * @link https://redis.io/commands/hmget * @example *
         * $redis->del('h');
         * $redis->hSet('h', 'field1', 'value1');
         * $redis->hSet('h', 'field2', 'value2');
         * $redis->hmGet('h', array('field1', 'field2')); // returns array('field1' => 'value1', 'field2' => 'value2')
         * 
    */
    public function hMGet($key, $hashKeys) { } /** * Scan a HASH value for members, with an optional pattern and count. * * @param string $key * @param int &$iterator * @param string $pattern Optional pattern to match against. * @param int $count How many keys to return in a go (only a sugestion to Redis). * * @return array An array of members that match our pattern. * * @link https://redis.io/commands/hscan * @example *
         * // $iterator = null;
         * // while($elements = $redis->hscan('hash', $iterator)) {
         * //     foreach($elements as $key => $value) {
         * //         echo $key . ' => ' . $value . PHP_EOL;
         * //     }
         * // }
         * 
    */
    public function hScan($key, &$iterator, $pattern = null, $count = 0) { } /** * Get the string length of the value associated with field in the hash stored at key * * @param string $key * @param string $field * * @return int the string length of the value associated with field, or zero when field is not present in the hash * or key does not exist at all. * * @link https://redis.io/commands/hstrlen * @since >= 3.2 */ public function hStrLen(string $key, string $field) { } /** * Add one or more geospatial items to the specified key. * This function must be called with at least one longitude, latitude, member triplet. * * @param string $key * @param float $longitude * @param float $latitude * @param string $member * * @return int The number of elements added to the geospatial key * * @link https://redis.io/commands/geoadd * @since >=3.2 * * @example *
         * $redis->del("myplaces");
         *
         * // Since the key will be new, $result will be 2
         * $result = $redis->geoAdd(
         *   "myplaces",
         *   -122.431, 37.773, "San Francisco",
         *   -157.858, 21.315, "Honolulu"
         * ); // 2
         * 
    */
    public function geoadd($key, $longitude, $latitude, $member) { } /** * Retrieve Geohash strings for one or more elements of a geospatial index. * @param string $key * @param string ...$member variadic list of members * * @return array One or more Redis Geohash encoded strings * * @link https://redis.io/commands/geohash * @since >=3.2 * * @example *
         * $redis->geoAdd("hawaii", -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui");
         * $hashes = $redis->geoHash("hawaii", "Honolulu", "Maui");
         * var_dump($hashes);
         * // Output: array(2) {
         * //   [0]=>
         * //   string(11) "87z9pyek3y0"
         * //   [1]=>
         * //   string(11) "8e8y6d5jps0"
         * // }
         * 
    */
    public function geohash($key, ...$member) { } /** * Return longitude, latitude positions for each requested member. * * @param string $key * @param string $member * @return array One or more longitude/latitude positions * * @link https://redis.io/commands/geopos * @since >=3.2 * * @example *
         * $redis->geoAdd("hawaii", -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui");
         * $positions = $redis->geoPos("hawaii", "Honolulu", "Maui");
         * var_dump($positions);
         *
         * // Output:
         * array(2) {
         *  [0]=> array(2) {
         *      [0]=> string(22) "-157.85800248384475708"
         *      [1]=> string(19) "21.3060004581273077"
         *  }
         *  [1]=> array(2) {
         *      [0]=> string(22) "-156.33099943399429321"
         *      [1]=> string(20) "20.79799924753607598"
         *  }
         * }
         * 
    */
    public function geopos(string $key, string $member) { } /** * Return the distance between two members in a geospatial set. * * If units are passed it must be one of the following values: * - 'm' => Meters * - 'km' => Kilometers * - 'mi' => Miles * - 'ft' => Feet * * @param string $key * @param string $member1 * @param string $member2 * @param string|null $unit * * @return float The distance between the two passed members in the units requested (meters by default) * * @link https://redis.io/commands/geodist * @since >=3.2 * * @example *
         * $redis->geoAdd("hawaii", -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui");
         *
         * $meters = $redis->geoDist("hawaii", "Honolulu", "Maui");
         * $kilometers = $redis->geoDist("hawaii", "Honolulu", "Maui", 'km');
         * $miles = $redis->geoDist("hawaii", "Honolulu", "Maui", 'mi');
         * $feet = $redis->geoDist("hawaii", "Honolulu", "Maui", 'ft');
         *
         * echo "Distance between Honolulu and Maui:\n";
         * echo "  meters    : $meters\n";
         * echo "  kilometers: $kilometers\n";
         * echo "  miles     : $miles\n";
         * echo "  feet      : $feet\n";
         *
         * // Bad unit
         * $inches = $redis->geoDist("hawaii", "Honolulu", "Maui", 'in');
         * echo "Invalid unit returned:\n";
         * var_dump($inches);
         *
         * // Output
         * Distance between Honolulu and Maui:
         * meters    : 168275.204
         * kilometers: 168.2752
         * miles     : 104.5616
         * feet      : 552084.0028
         * Invalid unit returned:
         * bool(false)
         * 
    */
    public function geodist($key, $member1, $member2, $unit = null) { } /** * Return members of a set with geospatial information that are within the radius specified by the caller. * * @param $key * @param $longitude * @param $latitude * @param $radius * @param $unit * @param array|null $options *
         * |Key         |Value          |Description                                        |
         * |------------|---------------|---------------------------------------------------|
         * |COUNT       |integer > 0    |Limit how many results are returned                |
         * |            |WITHCOORD      |Return longitude and latitude of matching members  |
         * |            |WITHDIST       |Return the distance from the center                |
         * |            |WITHHASH       |Return the raw geohash-encoded score               |
         * |            |ASC            |Sort results in ascending order                    |
         * |            |DESC           |Sort results in descending order                   |
         * |STORE       |key            |Store results in key                               |
         * |STOREDIST   |key            |Store the results as distances in key              |
         * 
    * Note: It doesn't make sense to pass both ASC and DESC options but if both are passed * the last one passed will be used. * Note: When using STORE[DIST] in Redis Cluster, the store key must has to the same slot as * the query key or you will get a CROSSLOT error. * @return mixed When no STORE option is passed, this function returns an array of results. * If it is passed this function returns the number of stored entries. * * @link https://redis.io/commands/georadius * @since >= 3.2 * @example *
         * // Add some cities
         * $redis->geoAdd("hawaii", -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui");
         *
         * echo "Within 300 miles of Honolulu:\n";
         * var_dump($redis->geoRadius("hawaii", -157.858, 21.306, 300, 'mi'));
         *
         * echo "\nWithin 300 miles of Honolulu with distances:\n";
         * $options = ['WITHDIST'];
         * var_dump($redis->geoRadius("hawaii", -157.858, 21.306, 300, 'mi', $options));
         *
         * echo "\nFirst result within 300 miles of Honolulu with distances:\n";
         * $options['count'] = 1;
         * var_dump($redis->geoRadius("hawaii", -157.858, 21.306, 300, 'mi', $options));
         *
         * echo "\nFirst result within 300 miles of Honolulu with distances in descending sort order:\n";
         * $options[] = 'DESC';
         * var_dump($redis->geoRadius("hawaii", -157.858, 21.306, 300, 'mi', $options));
         *
         * // Output
         * Within 300 miles of Honolulu:
         * array(2) {
         *  [0]=> string(8) "Honolulu"
         *  [1]=> string(4) "Maui"
         * }
         *
         * Within 300 miles of Honolulu with distances:
         * array(2) {
         *     [0]=>
         *   array(2) {
         *         [0]=>
         *     string(8) "Honolulu"
         *         [1]=>
         *     string(6) "0.0002"
         *   }
         *   [1]=>
         *   array(2) {
         *         [0]=>
         *     string(4) "Maui"
         *         [1]=>
         *     string(8) "104.5615"
         *   }
         * }
         *
         * First result within 300 miles of Honolulu with distances:
         * array(1) {
         *     [0]=>
         *   array(2) {
         *         [0]=>
         *     string(8) "Honolulu"
         *         [1]=>
         *     string(6) "0.0002"
         *   }
         * }
         *
         * First result within 300 miles of Honolulu with distances in descending sort order:
         * array(1) {
         *     [0]=>
         *   array(2) {
         *         [0]=>
         *     string(4) "Maui"
         *         [1]=>
         *     string(8) "104.5615"
         *   }
         * }
         * 
    */
    public function georadius($key, $longitude, $latitude, $radius, $unit, array $options = null) { } /** * This method is identical to geoRadius except that instead of passing a longitude and latitude as the "source" * you pass an existing member in the geospatial set * * @param string $key * @param string $member * @param $radius * @param $units * @param array|null $options see georadius * * @return array The zero or more entries that are close enough to the member given the distance and radius specified * * @link https://redis.io/commands/georadiusbymember * @since >= 3.2 * @see georadius * @example *
         * $redis->geoAdd("hawaii", -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui");
         *
         * echo "Within 300 miles of Honolulu:\n";
         * var_dump($redis->geoRadiusByMember("hawaii", "Honolulu", 300, 'mi'));
         *
         * echo "\nFirst match within 300 miles of Honolulu:\n";
         * var_dump($redis->geoRadiusByMember("hawaii", "Honolulu", 300, 'mi', ['count' => 1]));
         *
         * // Output
         * Within 300 miles of Honolulu:
         * array(2) {
         *  [0]=> string(8) "Honolulu"
         *  [1]=> string(4) "Maui"
         * }
         *
         * First match within 300 miles of Honolulu:
         * array(1) {
         *  [0]=> string(8) "Honolulu"
         * }
         * 
    */
    public function georadiusbymember($key, $member, $radius, $units, array $options = null) { } /** * Get or Set the redis config keys. * * @param string $operation either `GET` or `SET` * @param string $key for `SET`, glob-pattern for `GET` * @param string|mixed $value optional string (only for `SET`) * * @return array Associative array for `GET`, key -> value * * @link https://redis.io/commands/config-get * @example *
         * $redis->config("GET", "*max-*-entries*");
         * $redis->config("SET", "dir", "/var/run/redis/dumps/");
         * 
    */
    public function config($operation, $key, $value) { } /** * Evaluate a LUA script serverside * * @param string $script * @param array $args * @param int $numKeys * * @return mixed What is returned depends on what the LUA script itself returns, which could be a scalar value * (int/string), or an array. Arrays that are returned can also contain other arrays, if that's how it was set up in * your LUA script. If there is an error executing the LUA script, the getLastError() function can tell you the * message that came back from Redis (e.g. compile error). * * @link https://redis.io/commands/eval * @example *
         * $redis->eval("return 1"); // Returns an integer: 1
         * $redis->eval("return {1,2,3}"); // Returns Array(1,2,3)
         * $redis->del('mylist');
         * $redis->rpush('mylist','a');
         * $redis->rpush('mylist','b');
         * $redis->rpush('mylist','c');
         * // Nested response:  Array(1,2,3,Array('a','b','c'));
         * $redis->eval("return {1,2,3,redis.call('lrange','mylist',0,-1)}}");
         * 
    */
    public function eval($script, $args = array(), $numKeys = 0) { } /** * @param string $script * @param array $args * @param int $numKeys * @return mixed @see eval() */ #[Deprecated(replacement: '%class%->eval(%parametersList%)')] public function evaluate($script, $args = array(), $numKeys = 0) { } /** * Evaluate a LUA script serverside, from the SHA1 hash of the script instead of the script itself. * In order to run this command Redis will have to have already loaded the script, either by running it or via * the SCRIPT LOAD command. * * @param string $scriptSha * @param array $args * @param int $numKeys * * @return mixed @see eval() * * @see eval() * @link https://redis.io/commands/evalsha * @example *
         * $script = 'return 1';
         * $sha = $redis->script('load', $script);
         * $redis->evalSha($sha); // Returns 1
         * 
    */
    public function evalSha($scriptSha, $args = array(), $numKeys = 0) { } /** * @param string $scriptSha * @param array $args * @param int $numKeys */ #[Deprecated(replacement: '%class%->evalSha(%parametersList%)')] public function evaluateSha($scriptSha, $args = array(), $numKeys = 0) { } /** * Execute the Redis SCRIPT command to perform various operations on the scripting subsystem. * @param string $command load | flush | kill | exists * @param string $script * * @return mixed * * @link https://redis.io/commands/script-load * @link https://redis.io/commands/script-kill * @link https://redis.io/commands/script-flush * @link https://redis.io/commands/script-exists * @example *
         * $redis->script('load', $script);
         * $redis->script('flush');
         * $redis->script('kill');
         * $redis->script('exists', $script1, [$script2, $script3, ...]);
         * 
    * * SCRIPT LOAD will return the SHA1 hash of the passed script on success, and FALSE on failure. * SCRIPT FLUSH should always return TRUE * SCRIPT KILL will return true if a script was able to be killed and false if not * SCRIPT EXISTS will return an array with TRUE or FALSE for each passed script */
    public function script($command, $script) { } /** * The last error message (if any) * * @return string|null A string with the last returned script based error message, or NULL if there is no error * * @example *
         * $redis->eval('this-is-not-lua');
         * $err = $redis->getLastError();
         * // "ERR Error compiling script (new function): user_script:1: '=' expected near '-'"
         * 
    */
    public function getLastError() { } /** * Clear the last error message * * @return bool true * * @example *
         * $redis->set('x', 'a');
         * $redis->incr('x');
         * $err = $redis->getLastError();
         * // "ERR value is not an integer or out of range"
         * $redis->clearLastError();
         * $err = $redis->getLastError();
         * // NULL
         * 
    */
    public function clearLastError() { } /** * Issue the CLIENT command with various arguments. * The Redis CLIENT command can be used in four ways: * - CLIENT LIST * - CLIENT GETNAME * - CLIENT SETNAME [name] * - CLIENT KILL [ip:port] * * @param string $command * @param string $value * @return mixed This will vary depending on which client command was executed: * - CLIENT LIST will return an array of arrays with client information. * - CLIENT GETNAME will return the client name or false if none has been set * - CLIENT SETNAME will return true if it can be set and false if not * - CLIENT KILL will return true if the client can be killed, and false if not * * Note: phpredis will attempt to reconnect so you can actually kill your own connection but may not notice losing it! * * @link https://redis.io/commands/client-list * @link https://redis.io/commands/client-getname * @link https://redis.io/commands/client-setname * @link https://redis.io/commands/client-kill * * @example *
         * $redis->client('list'); // Get a list of clients
         * $redis->client('getname'); // Get the name of the current connection
         * $redis->client('setname', 'somename'); // Set the name of the current connection
         * $redis->client('kill', ); // Kill the process at ip:port
         * 
    */
    public function client($command, $value = '') { } /** * A utility method to prefix the value with the prefix setting for phpredis. * * @param mixed $value The value you wish to prefix * * @return string If a prefix is set up, the value now prefixed. * If there is no prefix, the value will be returned unchanged. * * @example *
         * $redis->setOption(Redis::OPT_PREFIX, 'my-prefix:');
         * $redis->_prefix('my-value'); // Will return 'my-prefix:my-value'
         * 
    */
    public function _prefix($value) { } /** * A utility method to unserialize data with whatever serializer is set up. If there is no serializer set, the * value will be returned unchanged. If there is a serializer set up, and the data passed in is malformed, an * exception will be thrown. This can be useful if phpredis is serializing values, and you return something from * redis in a LUA script that is serialized. * * @param string $value The value to be unserialized * * @return mixed * @example *
         * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
         * $redis->_unserialize('a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}'); // Will return Array(1,2,3)
         * 
    */
    public function _unserialize($value) { } /** * A utility method to serialize values manually. This method allows you to serialize a value with whatever * serializer is configured, manually. This can be useful for serialization/unserialization of data going in * and out of EVAL commands as phpredis can't automatically do this itself. Note that if no serializer is * set, phpredis will change Array values to 'Array', and Objects to 'Object'. * * @param mixed $value The value to be serialized. * * @return mixed * @example *
         * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);
         * $redis->_serialize("foo"); // returns "foo"
         * $redis->_serialize(Array()); // Returns "Array"
         * $redis->_serialize(new stdClass()); // Returns "Object"
         *
         * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
         * $redis->_serialize("foo"); // Returns 's:3:"foo";'
         * 
    */
    public function _serialize($value) { } /** * Dump a key out of a redis database, the value of which can later be passed into redis using the RESTORE command. * The data that comes out of DUMP is a binary representation of the key as Redis stores it. * @param string $key * * @return string|false The Redis encoded value of the key, or FALSE if the key doesn't exist * * @link https://redis.io/commands/dump * @example *
         * $redis->set('foo', 'bar');
         * $val = $redis->dump('foo'); // $val will be the Redis encoded key value
         * 
    */
    public function dump($key) { } /** * Restore a key from the result of a DUMP operation. * * @param string $key The key name * @param int $ttl How long the key should live (if zero, no expire will be set on the key) * @param string $value (binary). The Redis encoded key value (from DUMP) * * @return bool * * @link https://redis.io/commands/restore * @example *
         * $redis->set('foo', 'bar');
         * $val = $redis->dump('foo');
         * $redis->restore('bar', 0, $val); // The key 'bar', will now be equal to the key 'foo'
         * 
    */
    public function restore($key, $ttl, $value) { } /** * Migrates a key to a different Redis instance. * * @param string $host The destination host * @param int $port The TCP port to connect to. * @param string $key The key to migrate. * @param int $db The target DB. * @param int $timeout The maximum amount of time given to this transfer. * @param bool $copy Should we send the COPY flag to redis. * @param bool $replace Should we send the REPLACE flag to redis. * * @return bool * * @link https://redis.io/commands/migrate * @example *
         * $redis->migrate('backup', 6379, 'foo', 0, 3600);
         * 
    */
    public function migrate($host, $port, $key, $db, $timeout, $copy = false, $replace = false) { } /** * Return the current Redis server time. * * @return array If successful, the time will come back as an associative array with element zero being the * unix timestamp, and element one being microseconds. * * @link https://redis.io/commands/time * @example *
         * var_dump( $redis->time() );
         * // array(2) {
         * //   [0] => string(10) "1342364352"
         * //   [1] => string(6) "253002"
         * // }
         * 
    */
    public function time() { } /** * Scan the keyspace for keys * * @param int &$iterator Iterator, initialized to NULL. * @param string $pattern Pattern to match. * @param int $count Count of keys per iteration (only a suggestion to Redis). * * @return array|false This function will return an array of keys or FALSE if there are no more keys. * * @link https://redis.io/commands/scan * @example *
         * $iterator = null;
         * while(false !== ($keys = $redis->scan($iterator))) {
         *     foreach($keys as $key) {
         *         echo $key . PHP_EOL;
         *     }
         * }
         * 
    */
    public function scan(&$iterator, $pattern = null, $count = 0) { } /** * Adds all the element arguments to the HyperLogLog data structure stored at the key. * * @param string $key * @param array $elements * * @return bool * * @link https://redis.io/commands/pfadd * @example $redis->pfAdd('key', array('elem1', 'elem2')) */ public function pfAdd($key, array $elements) { } /** * When called with a single key, returns the approximated cardinality computed by the HyperLogLog data * structure stored at the specified variable, which is 0 if the variable does not exist. * * @param string|array $key * * @return int * * @link https://redis.io/commands/pfcount * @example *
         * $redis->pfAdd('key1', array('elem1', 'elem2'));
         * $redis->pfAdd('key2', array('elem3', 'elem2'));
         * $redis->pfCount('key1'); // int(2)
         * $redis->pfCount(array('key1', 'key2')); // int(3)
         */
        public function pfCount($key)
        {
        }
    
        /**
         * Merge multiple HyperLogLog values into an unique value that will approximate the cardinality
         * of the union of the observed Sets of the source HyperLogLog structures.
         *
         * @param string $destKey
         * @param array  $sourceKeys
         *
         * @return bool
         *
         * @link    https://redis.io/commands/pfmerge
         * @example
         * 
         * $redis->pfAdd('key1', array('elem1', 'elem2'));
         * $redis->pfAdd('key2', array('elem3', 'elem2'));
         * $redis->pfMerge('key3', array('key1', 'key2'));
         * $redis->pfCount('key3'); // int(3)
         */
        public function pfMerge($destKey, array $sourceKeys)
        {
        }
    
        /**
         * Send arbitrary things to the redis server.
         *
         * @param string $command   Required command to send to the server.
         * @param mixed  $arguments Optional variable amount of arguments to send to the server.
         *
         * @return mixed
         *
         * @example
         * 
         * $redis->rawCommand('SET', 'key', 'value'); // bool(true)
         * $redis->rawCommand('GET", 'key'); // string(5) "value"
         * 
    */
    public function rawCommand($command, $arguments) { } /** * Detect whether we're in ATOMIC/MULTI/PIPELINE mode. * * @return int Either Redis::ATOMIC, Redis::MULTI or Redis::PIPELINE * * @example $redis->getMode(); */ public function getMode() { } /** * Acknowledge one or more messages on behalf of a consumer group. * * @param string $stream * @param string $group * @param array $messages * * @return int The number of messages Redis reports as acknowledged. * * @link https://redis.io/commands/xack * @example *
         * $redis->xAck('stream', 'group1', ['1530063064286-0', '1530063064286-1']);
         * 
    */
    public function xAck($stream, $group, $messages) { } /** * Add a message to a stream * * @param string $key * @param string $id * @param array $messages * @param int $maxLen * @param bool $isApproximate * * @return string The added message ID. * * @link https://redis.io/commands/xadd * @example *
         * $redis->xAdd('mystream', "*", ['field' => 'value']);
         * $redis->xAdd('mystream', "*", ['field' => 'value'], 10);
         * $redis->xAdd('mystream', "*", ['field' => 'value'], 10, true);
         * 
    */
    public function xAdd($key, $id, $messages, $maxLen = 0, $isApproximate = false) { } /** * Claim ownership of one or more pending messages * * @param string $key * @param string $group * @param string $consumer * @param int $minIdleTime * @param array $ids * @param array $options ['IDLE' => $value, 'TIME' => $value, 'RETRYCOUNT' => $value, 'FORCE', 'JUSTID'] * * @return array Either an array of message IDs along with corresponding data, or just an array of IDs * (if the 'JUSTID' option was passed). * * @link https://redis.io/commands/xclaim * @example *
         * $ids = ['1530113681011-0', '1530113681011-1', '1530113681011-2'];
         *
         * // Without any options
         * $redis->xClaim('mystream', 'group1', 'myconsumer1', 0, $ids);
         *
         * // With options
         * $redis->xClaim(
         *     'mystream', 'group1', 'myconsumer2', 0, $ids,
         *     [
         *         'IDLE' => time() * 1000,
         *         'RETRYCOUNT' => 5,
         *         'FORCE',
         *         'JUSTID'
         *     ]
         * );
         * 
    */
    public function xClaim($key, $group, $consumer, $minIdleTime, $ids, $options = []) { } /** * Delete one or more messages from a stream * * @param string $key * @param array $ids * * @return int The number of messages removed * * @link https://redis.io/commands/xdel * @example *
         * $redis->xDel('mystream', ['1530115304877-0', '1530115305731-0']);
         * 
    */
    public function xDel($key, $ids) { } /** * @param string $operation e.g.: 'HELP', 'SETID', 'DELGROUP', 'CREATE', 'DELCONSUMER' * @param string $key * @param string $group * @param string $msgId * @param bool $mkStream * * @return mixed This command returns different types depending on the specific XGROUP command executed. * * @link https://redis.io/commands/xgroup * @example *
         * $redis->xGroup('CREATE', 'mystream', 'mygroup', 0);
         * $redis->xGroup('CREATE', 'mystream', 'mygroup', 0, true); // create stream
         * $redis->xGroup('DESTROY', 'mystream', 'mygroup');
         * 
    */
    public function xGroup($operation, $key, $group, $msgId = '', $mkStream = false) { } /** * Get information about a stream or consumer groups * * @param string $operation e.g.: 'CONSUMERS', 'GROUPS', 'STREAM', 'HELP' * @param string $stream * @param string $group * * @return mixed This command returns different types depending on which subcommand is used. * * @link https://redis.io/commands/xinfo * @example *
         * $redis->xInfo('STREAM', 'mystream');
         * 
    */
    public function xInfo($operation, $stream, $group) { } /** * Get the length of a given stream. * * @param string $stream * * @return int The number of messages in the stream. * * @link https://redis.io/commands/xlen * @example *
         * $redis->xLen('mystream');
         * 
    */
    public function xLen($stream) { } /** * Get information about pending messages in a given stream * * @param string $stream * @param string $group * @param string $start * @param string $end * @param int $count * @param string $consumer * * @return array Information about the pending messages, in various forms depending on * the specific invocation of XPENDING. * * @link https://redis.io/commands/xpending * @example *
         * $redis->xPending('mystream', 'mygroup');
         * $redis->xPending('mystream', 'mygroup', '-', '+', 1, 'consumer-1');
         * 
    */
    public function xPending($stream, $group, $start = null, $end = null, $count = null, $consumer = null) { } /** * Get a range of messages from a given stream * * @param string $stream * @param string $start * @param string $end * @param int $count * * @return array The messages in the stream within the requested range. * * @link https://redis.io/commands/xrange * @example *
         * // Get everything in this stream
         * $redis->xRange('mystream', '-', '+');
         * // Only the first two messages
         * $redis->xRange('mystream', '-', '+', 2);
         * 
    */
    public function xRange($stream, $start, $end, $count = null) { } /** * Read data from one or more streams and only return IDs greater than sent in the command. * * @param array $streams * @param int|string $count * @param int|string $block * * @return array The messages in the stream newer than the IDs passed to Redis (if any) * * @link https://redis.io/commands/xread * @example *
         * $redis->xRead(['stream1' => '1535222584555-0', 'stream2' => '1535222584555-0']);
         * 
    */
    public function xRead($streams, $count = null, $block = null) { } /** * This method is similar to xRead except that it supports reading messages for a specific consumer group. * * @param string $group * @param string $consumer * @param array $streams * @param int|null $count * @param int|null $block * * @return array The messages delivered to this consumer group (if any). * * @link https://redis.io/commands/xreadgroup * @example *
         * // Consume messages for 'mygroup', 'consumer1'
         * $redis->xReadGroup('mygroup', 'consumer1', ['s1' => 0, 's2' => 0]);
         * // Read a single message as 'consumer2' for up to a second until a message arrives.
         * $redis->xReadGroup('mygroup', 'consumer2', ['s1' => 0, 's2' => 0], 1, 1000);
         * 
    */
    public function xReadGroup($group, $consumer, $streams, $count = null, $block = null) { } /** * This is identical to xRange except the results come back in reverse order. * Also note that Redis reverses the order of "start" and "end". * * @param string $stream * @param string $end * @param string $start * @param int $count * * @return array The messages in the range specified * * @link https://redis.io/commands/xrevrange * @example *
         * $redis->xRevRange('mystream', '+', '-');
         * 
    */
    public function xRevRange($stream, $end, $start, $count = null) { } /** * Trim the stream length to a given maximum. * If the "approximate" flag is pasesed, Redis will use your size as a hint but only trim trees in whole nodes * (this is more efficient) * * @param string $stream * @param int $maxLen * @param bool $isApproximate * * @return int The number of messages trimed from the stream. * * @link https://redis.io/commands/xtrim * @example *
         * // Trim to exactly 100 messages
         * $redis->xTrim('mystream', 100);
         * // Let Redis approximate the trimming
         * $redis->xTrim('mystream', 100, true);
         * 
    */
    public function xTrim($stream, $maxLen, $isApproximate) { } /** * Adds a values to the set value stored at key. * * @param string $key Required key * @param array $values Required values * * @return int|bool The number of elements added to the set. * If this value is already in the set, FALSE is returned * * @link https://redis.io/commands/sadd * @link https://github.com/phpredis/phpredis/commit/3491b188e0022f75b938738f7542603c7aae9077 * @since phpredis 2.2.8 * @example *
         * $redis->sAddArray('k', array('v1'));                // boolean
         * $redis->sAddArray('k', array('v1', 'v2', 'v3'));    // boolean
         * 
    */
    public function sAddArray($key, array $values) { } } class RedisException extends Exception { } /** * @mixin \Redis */ class RedisArray { /** * Constructor * * @param string|array $hosts Name of the redis array from redis.ini or array of hosts to construct the array with * @param array $opts Array of options * * @link https://github.com/nicolasff/phpredis/blob/master/arrays.markdown */ public function __construct($hosts, array $opts = null) { } /** * @return array list of hosts for the selected array */ public function _hosts() { } /** * @return string the name of the function used to extract key parts during consistent hashing */ public function _function() { } /** * @param string $key The key for which you want to lookup the host * * @return string the host to be used for a certain key */ public function _target($key) { } /** * @param string $host The host you want to retrieve the instance for * * @return Redis a redis instance connected to a specific node */ public function _instance($host) { } /** * Use this function when a new node is added and keys need to be rehashed. */ public function _rehash() { } /** * Returns an associative array of strings and integers, with the following keys: * - redis_version * - redis_git_sha1 * - redis_git_dirty * - redis_build_id * - redis_mode * - os * - arch_bits * - multiplexing_api * - atomicvar_api * - gcc_version * - process_id * - run_id * - tcp_port * - uptime_in_seconds * - uptime_in_days * - hz * - lru_clock * - executable * - config_file * - connected_clients * - client_longest_output_list * - client_biggest_input_buf * - blocked_clients * - used_memory * - used_memory_human * - used_memory_rss * - used_memory_rss_human * - used_memory_peak * - used_memory_peak_human * - used_memory_peak_perc * - used_memory_peak * - used_memory_overhead * - used_memory_startup * - used_memory_dataset * - used_memory_dataset_perc * - total_system_memory * - total_system_memory_human * - used_memory_lua * - used_memory_lua_human * - maxmemory * - maxmemory_human * - maxmemory_policy * - mem_fragmentation_ratio * - mem_allocator * - active_defrag_running * - lazyfree_pending_objects * - mem_fragmentation_ratio * - loading * - rdb_changes_since_last_save * - rdb_bgsave_in_progress * - rdb_last_save_time * - rdb_last_bgsave_status * - rdb_last_bgsave_time_sec * - rdb_current_bgsave_time_sec * - rdb_last_cow_size * - aof_enabled * - aof_rewrite_in_progress * - aof_rewrite_scheduled * - aof_last_rewrite_time_sec * - aof_current_rewrite_time_sec * - aof_last_bgrewrite_status * - aof_last_write_status * - aof_last_cow_size * - changes_since_last_save * - aof_current_size * - aof_base_size * - aof_pending_rewrite * - aof_buffer_length * - aof_rewrite_buffer_length * - aof_pending_bio_fsync * - aof_delayed_fsync * - loading_start_time * - loading_total_bytes * - loading_loaded_bytes * - loading_loaded_perc * - loading_eta_seconds * - total_connections_received * - total_commands_processed * - instantaneous_ops_per_sec * - total_net_input_bytes * - total_net_output_bytes * - instantaneous_input_kbps * - instantaneous_output_kbps * - rejected_connections * - maxclients * - sync_full * - sync_partial_ok * - sync_partial_err * - expired_keys * - evicted_keys * - keyspace_hits * - keyspace_misses * - pubsub_channels * - pubsub_patterns * - latest_fork_usec * - migrate_cached_sockets * - slave_expires_tracked_keys * - active_defrag_hits * - active_defrag_misses * - active_defrag_key_hits * - active_defrag_key_misses * - role * - master_replid * - master_replid2 * - master_repl_offset * - second_repl_offset * - repl_backlog_active * - repl_backlog_size * - repl_backlog_first_byte_offset * - repl_backlog_histlen * - master_host * - master_port * - master_link_status * - master_last_io_seconds_ago * - master_sync_in_progress * - slave_repl_offset * - slave_priority * - slave_read_only * - master_sync_left_bytes * - master_sync_last_io_seconds_ago * - master_link_down_since_seconds * - connected_slaves * - min-slaves-to-write * - min-replicas-to-write * - min_slaves_good_slaves * - used_cpu_sys * - used_cpu_user * - used_cpu_sys_children * - used_cpu_user_children * - cluster_enabled * * @link https://redis.io/commands/info * @return array * @example *
         * $redis->info();
         * 
    */
    public function info() { } }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
    • 294
    • 295
    • 296
    • 297
    • 298
    • 299
    • 300
    • 301
    • 302
    • 303
    • 304
    • 305
    • 306
    • 307
    • 308
    • 309
    • 310
    • 311
    • 312
    • 313
    • 314
    • 315
    • 316
    • 317
    • 318
    • 319
    • 320
    • 321
    • 322
    • 323
    • 324
    • 325
    • 326
    • 327
    • 328
    • 329
    • 330
    • 331
    • 332
    • 333
    • 334
    • 335
    • 336
    • 337
    • 338
    • 339
    • 340
    • 341
    • 342
    • 343
    • 344
    • 345
    • 346
    • 347
    • 348
    • 349
    • 350
    • 351
    • 352
    • 353
    • 354
    • 355
    • 356
    • 357
    • 358
    • 359
    • 360
    • 361
    • 362
    • 363
    • 364
    • 365
    • 366
    • 367
    • 368
    • 369
    • 370
    • 371
    • 372
    • 373
    • 374
    • 375
    • 376
    • 377
    • 378
    • 379
    • 380
    • 381
    • 382
    • 383
    • 384
    • 385
    • 386
    • 387
    • 388
    • 389
    • 390
    • 391
    • 392
    • 393
    • 394
    • 395
    • 396
    • 397
    • 398
    • 399
    • 400
    • 401
    • 402
    • 403
    • 404
    • 405
    • 406
    • 407
    • 408
    • 409
    • 410
    • 411
    • 412
    • 413
    • 414
    • 415
    • 416
    • 417
    • 418
    • 419
    • 420
    • 421
    • 422
    • 423
    • 424
    • 425
    • 426
    • 427
    • 428
    • 429
    • 430
    • 431
    • 432
    • 433
    • 434
    • 435
    • 436
    • 437
    • 438
    • 439
    • 440
    • 441
    • 442
    • 443
    • 444
    • 445
    • 446
    • 447
    • 448
    • 449
    • 450
    • 451
    • 452
    • 453
    • 454
    • 455
    • 456
    • 457
    • 458
    • 459
    • 460
    • 461
    • 462
    • 463
    • 464
    • 465
    • 466
    • 467
    • 468
    • 469
    • 470
    • 471
    • 472
    • 473
    • 474
    • 475
    • 476
    • 477
    • 478
    • 479
    • 480
    • 481
    • 482
    • 483
    • 484
    • 485
    • 486
    • 487
    • 488
    • 489
    • 490
    • 491
    • 492
    • 493
    • 494
    • 495
    • 496
    • 497
    • 498
    • 499
    • 500
    • 501
    • 502
    • 503
    • 504
    • 505
    • 506
    • 507
    • 508
    • 509
    • 510
    • 511
    • 512
    • 513
    • 514
    • 515
    • 516
    • 517
    • 518
    • 519
    • 520
    • 521
    • 522
    • 523
    • 524
    • 525
    • 526
    • 527
    • 528
    • 529
    • 530
    • 531
    • 532
    • 533
    • 534
    • 535
    • 536
    • 537
    • 538
    • 539
    • 540
    • 541
    • 542
    • 543
    • 544
    • 545
    • 546
    • 547
    • 548
    • 549
    • 550
    • 551
    • 552
    • 553
    • 554
    • 555
    • 556
    • 557
    • 558
    • 559
    • 560
    • 561
    • 562
    • 563
    • 564
    • 565
    • 566
    • 567
    • 568
    • 569
    • 570
    • 571
    • 572
    • 573
    • 574
    • 575
    • 576
    • 577
    • 578
    • 579
    • 580
    • 581
    • 582
    • 583
    • 584
    • 585
    • 586
    • 587
    • 588
    • 589
    • 590
    • 591
    • 592
    • 593
    • 594
    • 595
    • 596
    • 597
    • 598
    • 599
    • 600
    • 601
    • 602
    • 603
    • 604
    • 605
    • 606
    • 607
    • 608
    • 609
    • 610
    • 611
    • 612
    • 613
    • 614
    • 615
    • 616
    • 617
    • 618
    • 619
    • 620
    • 621
    • 622
    • 623
    • 624
    • 625
    • 626
    • 627
    • 628
    • 629
    • 630
    • 631
    • 632
    • 633
    • 634
    • 635
    • 636
    • 637
    • 638
    • 639
    • 640
    • 641
    • 642
    • 643
    • 644
    • 645
    • 646
    • 647
    • 648
    • 649
    • 650
    • 651
    • 652
    • 653
    • 654
    • 655
    • 656
    • 657
    • 658
    • 659
    • 660
    • 661
    • 662
    • 663
    • 664
    • 665
    • 666
    • 667
    • 668
    • 669
    • 670
    • 671
    • 672
    • 673
    • 674
    • 675
    • 676
    • 677
    • 678
    • 679
    • 680
    • 681
    • 682
    • 683
    • 684
    • 685
    • 686
    • 687
    • 688
    • 689
    • 690
    • 691
    • 692
    • 693
    • 694
    • 695
    • 696
    • 697
    • 698
    • 699
    • 700
    • 701
    • 702
    • 703
    • 704
    • 705
    • 706
    • 707
    • 708
    • 709
    • 710
    • 711
    • 712
    • 713
    • 714
    • 715
    • 716
    • 717
    • 718
    • 719
    • 720
    • 721
    • 722
    • 723
    • 724
    • 725
    • 726
    • 727
    • 728
    • 729
    • 730
    • 731
    • 732
    • 733
    • 734
    • 735
    • 736
    • 737
    • 738
    • 739
    • 740
    • 741
    • 742
    • 743
    • 744
    • 745
    • 746
    • 747
    • 748
    • 749
    • 750
    • 751
    • 752
    • 753
    • 754
    • 755
    • 756
    • 757
    • 758
    • 759
    • 760
    • 761
    • 762
    • 763
    • 764
    • 765
    • 766
    • 767
    • 768
    • 769
    • 770
    • 771
    • 772
    • 773
    • 774
    • 775
    • 776
    • 777
    • 778
    • 779
    • 780
    • 781
    • 782
    • 783
    • 784
    • 785
    • 786
    • 787
    • 788
    • 789
    • 790
    • 791
    • 792
    • 793
    • 794
    • 795
    • 796
    • 797
    • 798
    • 799
    • 800
    • 801
    • 802
    • 803
    • 804
    • 805
    • 806
    • 807
    • 808
    • 809
    • 810
    • 811
    • 812
    • 813
    • 814
    • 815
    • 816
    • 817
    • 818
    • 819
    • 820
    • 821
    • 822
    • 823
    • 824
    • 825
    • 826
    • 827
    • 828
    • 829
    • 830
    • 831
    • 832
    • 833
    • 834
    • 835
    • 836
    • 837
    • 838
    • 839
    • 840
    • 841
    • 842
    • 843
    • 844
    • 845
    • 846
    • 847
    • 848
    • 849
    • 850
    • 851
    • 852
    • 853
    • 854
    • 855
    • 856
    • 857
    • 858
    • 859
    • 860
    • 861
    • 862
    • 863
    • 864
    • 865
    • 866
    • 867
    • 868
    • 869
    • 870
    • 871
    • 872
    • 873
    • 874
    • 875
    • 876
    • 877
    • 878
    • 879
    • 880
    • 881
    • 882
    • 883
    • 884
    • 885
    • 886
    • 887
    • 888
    • 889
    • 890
    • 891
    • 892
    • 893
    • 894
    • 895
    • 896
    • 897
    • 898
    • 899
    • 900
    • 901
    • 902
    • 903
    • 904
    • 905
    • 906
    • 907
    • 908
    • 909
    • 910
    • 911
    • 912
    • 913
    • 914
    • 915
    • 916
    • 917
    • 918
    • 919
    • 920
    • 921
    • 922
    • 923
    • 924
    • 925
    • 926
    • 927
    • 928
    • 929
    • 930
    • 931
    • 932
    • 933
    • 934
    • 935
    • 936
    • 937
    • 938
    • 939
    • 940
    • 941
    • 942
    • 943
    • 944
    • 945
    • 946
    • 947
    • 948
    • 949
    • 950
    • 951
    • 952
    • 953
    • 954
    • 955
    • 956
    • 957
    • 958
    • 959
    • 960
    • 961
    • 962
    • 963
    • 964
    • 965
    • 966
    • 967
    • 968
    • 969
    • 970
    • 971
    • 972
    • 973
    • 974
    • 975
    • 976
    • 977
    • 978
    • 979
    • 980
    • 981
    • 982
    • 983
    • 984
    • 985
    • 986
    • 987
    • 988
    • 989
    • 990
    • 991
    • 992
    • 993
    • 994
    • 995
    • 996
    • 997
    • 998
    • 999
    • 1000
    • 1001
    • 1002
    • 1003
    • 1004
    • 1005
    • 1006
    • 1007
    • 1008
    • 1009
    • 1010
    • 1011
    • 1012
    • 1013
    • 1014
    • 1015
    • 1016
    • 1017
    • 1018
    • 1019
    • 1020
    • 1021
    • 1022
    • 1023
    • 1024
    • 1025
    • 1026
    • 1027
    • 1028
    • 1029
    • 1030
    • 1031
    • 1032
    • 1033
    • 1034
    • 1035
    • 1036
    • 1037
    • 1038
    • 1039
    • 1040
    • 1041
    • 1042
    • 1043
    • 1044
    • 1045
    • 1046
    • 1047
    • 1048
    • 1049
    • 1050
    • 1051
    • 1052
    • 1053
    • 1054
    • 1055
    • 1056
    • 1057
    • 1058
    • 1059
    • 1060
    • 1061
    • 1062
    • 1063
    • 1064
    • 1065
    • 1066
    • 1067
    • 1068
    • 1069
    • 1070
    • 1071
    • 1072
    • 1073
    • 1074
    • 1075
    • 1076
    • 1077
    • 1078
    • 1079
    • 1080
    • 1081
    • 1082
    • 1083
    • 1084
    • 1085
    • 1086
    • 1087
    • 1088
    • 1089
    • 1090
    • 1091
    • 1092
    • 1093
    • 1094
    • 1095
    • 1096
    • 1097
    • 1098
    • 1099
    • 1100
    • 1101
    • 1102
    • 1103
    • 1104
    • 1105
    • 1106
    • 1107
    • 1108
    • 1109
    • 1110
    • 1111
    • 1112
    • 1113
    • 1114
    • 1115
    • 1116
    • 1117
    • 1118
    • 1119
    • 1120
    • 1121
    • 1122
    • 1123
    • 1124
    • 1125
    • 1126
    • 1127
    • 1128
    • 1129
    • 1130
    • 1131
    • 1132
    • 1133
    • 1134
    • 1135
    • 1136
    • 1137
    • 1138
    • 1139
    • 1140
    • 1141
    • 1142
    • 1143
    • 1144
    • 1145
    • 1146
    • 1147
    • 1148
    • 1149
    • 1150
    • 1151
    • 1152
    • 1153
    • 1154
    • 1155
    • 1156
    • 1157
    • 1158
    • 1159
    • 1160
    • 1161
    • 1162
    • 1163
    • 1164
    • 1165
    • 1166
    • 1167
    • 1168
    • 1169
    • 1170
    • 1171
    • 1172
    • 1173
    • 1174
    • 1175
    • 1176
    • 1177
    • 1178
    • 1179
    • 1180
    • 1181
    • 1182
    • 1183
    • 1184
    • 1185
    • 1186
    • 1187
    • 1188
    • 1189
    • 1190
    • 1191
    • 1192
    • 1193
    • 1194
    • 1195
    • 1196
    • 1197
    • 1198
    • 1199
    • 1200
    • 1201
    • 1202
    • 1203
    • 1204
    • 1205
    • 1206
    • 1207
    • 1208
    • 1209
    • 1210
    • 1211
    • 1212
    • 1213
    • 1214
    • 1215
    • 1216
    • 1217
    • 1218
    • 1219
    • 1220
    • 1221
    • 1222
    • 1223
    • 1224
    • 1225
    • 1226
    • 1227
    • 1228
    • 1229
    • 1230
    • 1231
    • 1232
    • 1233
    • 1234
    • 1235
    • 1236
    • 1237
    • 1238
    • 1239
    • 1240
    • 1241
    • 1242
    • 1243
    • 1244
    • 1245
    • 1246
    • 1247
    • 1248
    • 1249
    • 1250
    • 1251
    • 1252
    • 1253
    • 1254
    • 1255
    • 1256
    • 1257
    • 1258
    • 1259
    • 1260
    • 1261
    • 1262
    • 1263
    • 1264
    • 1265
    • 1266
    • 1267
    • 1268
    • 1269
    • 1270
    • 1271
    • 1272
    • 1273
    • 1274
    • 1275
    • 1276
    • 1277
    • 1278
    • 1279
    • 1280
    • 1281
    • 1282
    • 1283
    • 1284
    • 1285
    • 1286
    • 1287
    • 1288
    • 1289
    • 1290
    • 1291
    • 1292
    • 1293
    • 1294
    • 1295
    • 1296
    • 1297
    • 1298
    • 1299
    • 1300
    • 1301
    • 1302
    • 1303
    • 1304
    • 1305
    • 1306
    • 1307
    • 1308
    • 1309
    • 1310
    • 1311
    • 1312
    • 1313
    • 1314
    • 1315
    • 1316
    • 1317
    • 1318
    • 1319
    • 1320
    • 1321
    • 1322
    • 1323
    • 1324
    • 1325
    • 1326
    • 1327
    • 1328
    • 1329
    • 1330
    • 1331
    • 1332
    • 1333
    • 1334
    • 1335
    • 1336
    • 1337
    • 1338
    • 1339
    • 1340
    • 1341
    • 1342
    • 1343
    • 1344
    • 1345
    • 1346
    • 1347
    • 1348
    • 1349
    • 1350
    • 1351
    • 1352
    • 1353
    • 1354
    • 1355
    • 1356
    • 1357
    • 1358
    • 1359
    • 1360
    • 1361
    • 1362
    • 1363
    • 1364
    • 1365
    • 1366
    • 1367
    • 1368
    • 1369
    • 1370
    • 1371
    • 1372
    • 1373
    • 1374
    • 1375
    • 1376
    • 1377
    • 1378
    • 1379
    • 1380
    • 1381
    • 1382
    • 1383
    • 1384
    • 1385
    • 1386
    • 1387
    • 1388
    • 1389
    • 1390
    • 1391
    • 1392
    • 1393
    • 1394
    • 1395
    • 1396
    • 1397
    • 1398
    • 1399
    • 1400
    • 1401
    • 1402
    • 1403
    • 1404
    • 1405
    • 1406
    • 1407
    • 1408
    • 1409
    • 1410
    • 1411
    • 1412
    • 1413
    • 1414
    • 1415
    • 1416
    • 1417
    • 1418
    • 1419
    • 1420
    • 1421
    • 1422
    • 1423
    • 1424
    • 1425
    • 1426
    • 1427
    • 1428
    • 1429
    • 1430
    • 1431
    • 1432
    • 1433
    • 1434
    • 1435
    • 1436
    • 1437
    • 1438
    • 1439
    • 1440
    • 1441
    • 1442
    • 1443
    • 1444
    • 1445
    • 1446
    • 1447
    • 1448
    • 1449
    • 1450
    • 1451
    • 1452
    • 1453
    • 1454
    • 1455
    • 1456
    • 1457
    • 1458
    • 1459
    • 1460
    • 1461
    • 1462
    • 1463
    • 1464
    • 1465
    • 1466
    • 1467
    • 1468
    • 1469
    • 1470
    • 1471
    • 1472
    • 1473
    • 1474
    • 1475
    • 1476
    • 1477
    • 1478
    • 1479
    • 1480
    • 1481
    • 1482
    • 1483
    • 1484
    • 1485
    • 1486
    • 1487
    • 1488
    • 1489
    • 1490
    • 1491
    • 1492
    • 1493
    • 1494
    • 1495
    • 1496
    • 1497
    • 1498
    • 1499
    • 1500
    • 1501
    • 1502
    • 1503
    • 1504
    • 1505
    • 1506
    • 1507
    • 1508
    • 1509
    • 1510
    • 1511
    • 1512
    • 1513
    • 1514
    • 1515
    • 1516
    • 1517
    • 1518
    • 1519
    • 1520
    • 1521
    • 1522
    • 1523
    • 1524
    • 1525
    • 1526
    • 1527
    • 1528
    • 1529
    • 1530
    • 1531
    • 1532
    • 1533
    • 1534
    • 1535
    • 1536
    • 1537
    • 1538
    • 1539
    • 1540
    • 1541
    • 1542
    • 1543
    • 1544
    • 1545
    • 1546
    • 1547
    • 1548
    • 1549
    • 1550
    • 1551
    • 1552
    • 1553
    • 1554
    • 1555
    • 1556
    • 1557
    • 1558
    • 1559
    • 1560
    • 1561
    • 1562
    • 1563
    • 1564
    • 1565
    • 1566
    • 1567
    • 1568
    • 1569
    • 1570
    • 1571
    • 1572
    • 1573
    • 1574
    • 1575
    • 1576
    • 1577
    • 1578
    • 1579
    • 1580
    • 1581
    • 1582
    • 1583
    • 1584
    • 1585
    • 1586
    • 1587
    • 1588
    • 1589
    • 1590
    • 1591
    • 1592
    • 1593
    • 1594
    • 1595
    • 1596
    • 1597
    • 1598
    • 1599
    • 1600
    • 1601
    • 1602
    • 1603
    • 1604
    • 1605
    • 1606
    • 1607
    • 1608
    • 1609
    • 1610
    • 1611
    • 1612
    • 1613
    • 1614
    • 1615
    • 1616
    • 1617
    • 1618
    • 1619
    • 1620
    • 1621
    • 1622
    • 1623
    • 1624
    • 1625
    • 1626
    • 1627
    • 1628
    • 1629
    • 1630
    • 1631
    • 1632
    • 1633
    • 1634
    • 1635
    • 1636
    • 1637
    • 1638
    • 1639
    • 1640
    • 1641
    • 1642
    • 1643
    • 1644
    • 1645
    • 1646
    • 1647
    • 1648
    • 1649
    • 1650
    • 1651
    • 1652
    • 1653
    • 1654
    • 1655
    • 1656
    • 1657
    • 1658
    • 1659
    • 1660
    • 1661
    • 1662
    • 1663
    • 1664
    • 1665
    • 1666
    • 1667
    • 1668
    • 1669
    • 1670
    • 1671
    • 1672
    • 1673
    • 1674
    • 1675
    • 1676
    • 1677
    • 1678
    • 1679
    • 1680
    • 1681
    • 1682
    • 1683
    • 1684
    • 1685
    • 1686
    • 1687
    • 1688
    • 1689
    • 1690
    • 1691
    • 1692
    • 1693
    • 1694
    • 1695
    • 1696
    • 1697
    • 1698
    • 1699
    • 1700
    • 1701
    • 1702
    • 1703
    • 1704
    • 1705
    • 1706
    • 1707
    • 1708
    • 1709
    • 1710
    • 1711
    • 1712
    • 1713
    • 1714
    • 1715
    • 1716
    • 1717
    • 1718
    • 1719
    • 1720
    • 1721
    • 1722
    • 1723
    • 1724
    • 1725
    • 1726
    • 1727
    • 1728
    • 1729
    • 1730
    • 1731
    • 1732
    • 1733
    • 1734
    • 1735
    • 1736
    • 1737
    • 1738
    • 1739
    • 1740
    • 1741
    • 1742
    • 1743
    • 1744
    • 1745
    • 1746
    • 1747
    • 1748
    • 1749
    • 1750
    • 1751
    • 1752
    • 1753
    • 1754
    • 1755
    • 1756
    • 1757
    • 1758
    • 1759
    • 1760
    • 1761
    • 1762
    • 1763
    • 1764
    • 1765
    • 1766
    • 1767
    • 1768
    • 1769
    • 1770
    • 1771
    • 1772
    • 1773
    • 1774
    • 1775
    • 1776
    • 1777
    • 1778
    • 1779
    • 1780
    • 1781
    • 1782
    • 1783
    • 1784
    • 1785
    • 1786
    • 1787
    • 1788
    • 1789
    • 1790
    • 1791
    • 1792
    • 1793
    • 1794
    • 1795
    • 1796
    • 1797
    • 1798
    • 1799
    • 1800
    • 1801
    • 1802
    • 1803
    • 1804
    • 1805
    • 1806
    • 1807
    • 1808
    • 1809
    • 1810
    • 1811
    • 1812
    • 1813
    • 1814
    • 1815
    • 1816
    • 1817
    • 1818
    • 1819
    • 1820
    • 1821
    • 1822
    • 1823
    • 1824
    • 1825
    • 1826
    • 1827
    • 1828
    • 1829
    • 1830
    • 1831
    • 1832
    • 1833
    • 1834
    • 1835
    • 1836
    • 1837
    • 1838
    • 1839
    • 1840
    • 1841
    • 1842
    • 1843
    • 1844
    • 1845
    • 1846
    • 1847
    • 1848
    • 1849
    • 1850
    • 1851
    • 1852
    • 1853
    • 1854
    • 1855
    • 1856
    • 1857
    • 1858
    • 1859
    • 1860
    • 1861
    • 1862
    • 1863
    • 1864
    • 1865
    • 1866
    • 1867
    • 1868
    • 1869
    • 1870
    • 1871
    • 1872
    • 1873
    • 1874
    • 1875
    • 1876
    • 1877
    • 1878
    • 1879
    • 1880
    • 1881
    • 1882
    • 1883
    • 1884
    • 1885
    • 1886
    • 1887
    • 1888
    • 1889
    • 1890
    • 1891
    • 1892
    • 1893
    • 1894
    • 1895
    • 1896
    • 1897
    • 1898
    • 1899
    • 1900
    • 1901
    • 1902
    • 1903
    • 1904
    • 1905
    • 1906
    • 1907
    • 1908
    • 1909
    • 1910
    • 1911
    • 1912
    • 1913
    • 1914
    • 1915
    • 1916
    • 1917
    • 1918
    • 1919
    • 1920
    • 1921
    • 1922
    • 1923
    • 1924
    • 1925
    • 1926
    • 1927
    • 1928
    • 1929
    • 1930
    • 1931
    • 1932
    • 1933
    • 1934
    • 1935
    • 1936
    • 1937
    • 1938
    • 1939
    • 1940
    • 1941
    • 1942
    • 1943
    • 1944
    • 1945
    • 1946
    • 1947
    • 1948
    • 1949
    • 1950
    • 1951
    • 1952
    • 1953
    • 1954
    • 1955
    • 1956
    • 1957
    • 1958
    • 1959
    • 1960
    • 1961
    • 1962
    • 1963
    • 1964
    • 1965
    • 1966
    • 1967
    • 1968
    • 1969
    • 1970
    • 1971
    • 1972
    • 1973
    • 1974
    • 1975
    • 1976
    • 1977
    • 1978
    • 1979
    • 1980
    • 1981
    • 1982
    • 1983
    • 1984
    • 1985
    • 1986
    • 1987
    • 1988
    • 1989
    • 1990
    • 1991
    • 1992
    • 1993
    • 1994
    • 1995
    • 1996
    • 1997
    • 1998
    • 1999
    • 2000
    • 2001
    • 2002
    • 2003
    • 2004
    • 2005
    • 2006
    • 2007
    • 2008
    • 2009
    • 2010
    • 2011
    • 2012
    • 2013
    • 2014
    • 2015
    • 2016
    • 2017
    • 2018
    • 2019
    • 2020
    • 2021
    • 2022
    • 2023
    • 2024
    • 2025
    • 2026
    • 2027
    • 2028
    • 2029
    • 2030
    • 2031
    • 2032
    • 2033
    • 2034
    • 2035
    • 2036
    • 2037
    • 2038
    • 2039
    • 2040
    • 2041
    • 2042
    • 2043
    • 2044
    • 2045
    • 2046
    • 2047
    • 2048
    • 2049
    • 2050
    • 2051
    • 2052
    • 2053
    • 2054
    • 2055
    • 2056
    • 2057
    • 2058
    • 2059
    • 2060
    • 2061
    • 2062
    • 2063
    • 2064
    • 2065
    • 2066
    • 2067
    • 2068
    • 2069
    • 2070
    • 2071
    • 2072
    • 2073
    • 2074
    • 2075
    • 2076
    • 2077
    • 2078
    • 2079
    • 2080
    • 2081
    • 2082
    • 2083
    • 2084
    • 2085
    • 2086
    • 2087
    • 2088
    • 2089
    • 2090
    • 2091
    • 2092
    • 2093
    • 2094
    • 2095
    • 2096
    • 2097
    • 2098
    • 2099
    • 2100
    • 2101
    • 2102
    • 2103
    • 2104
    • 2105
    • 2106
    • 2107
    • 2108
    • 2109
    • 2110
    • 2111
    • 2112
    • 2113
    • 2114
    • 2115
    • 2116
    • 2117
    • 2118
    • 2119
    • 2120
    • 2121
    • 2122
    • 2123
    • 2124
    • 2125
    • 2126
    • 2127
    • 2128
    • 2129
    • 2130
    • 2131
    • 2132
    • 2133
    • 2134
    • 2135
    • 2136
    • 2137
    • 2138
    • 2139
    • 2140
    • 2141
    • 2142
    • 2143
    • 2144
    • 2145
    • 2146
    • 2147
    • 2148
    • 2149
    • 2150
    • 2151
    • 2152
    • 2153
    • 2154
    • 2155
    • 2156
    • 2157
    • 2158
    • 2159
    • 2160
    • 2161
    • 2162
    • 2163
    • 2164
    • 2165
    • 2166
    • 2167
    • 2168
    • 2169
    • 2170
    • 2171
    • 2172
    • 2173
    • 2174
    • 2175
    • 2176
    • 2177
    • 2178
    • 2179
    • 2180
    • 2181
    • 2182
    • 2183
    • 2184
    • 2185
    • 2186
    • 2187
    • 2188
    • 2189
    • 2190
    • 2191
    • 2192
    • 2193
    • 2194
    • 2195
    • 2196
    • 2197
    • 2198
    • 2199
    • 2200
    • 2201
    • 2202
    • 2203
    • 2204
    • 2205
    • 2206
    • 2207
    • 2208
    • 2209
    • 2210
    • 2211
    • 2212
    • 2213
    • 2214
    • 2215
    • 2216
    • 2217
    • 2218
    • 2219
    • 2220
    • 2221
    • 2222
    • 2223
    • 2224
    • 2225
    • 2226
    • 2227
    • 2228
    • 2229
    • 2230
    • 2231
    • 2232
    • 2233
    • 2234
    • 2235
    • 2236
    • 2237
    • 2238
    • 2239
    • 2240
    • 2241
    • 2242
    • 2243
    • 2244
    • 2245
    • 2246
    • 2247
    • 2248
    • 2249
    • 2250
    • 2251
    • 2252
    • 2253
    • 2254
    • 2255
    • 2256
    • 2257
    • 2258
    • 2259
    • 2260
    • 2261
    • 2262
    • 2263
    • 2264
    • 2265
    • 2266
    • 2267
    • 2268
    • 2269
    • 2270
    • 2271
    • 2272
    • 2273
    • 2274
    • 2275
    • 2276
    • 2277
    • 2278
    • 2279
    • 2280
    • 2281
    • 2282
    • 2283
    • 2284
    • 2285
    • 2286
    • 2287
    • 2288
    • 2289
    • 2290
    • 2291
    • 2292
    • 2293
    • 2294
    • 2295
    • 2296
    • 2297
    • 2298
    • 2299
    • 2300
    • 2301
    • 2302
    • 2303
    • 2304
    • 2305
    • 2306
    • 2307
    • 2308
    • 2309
    • 2310
    • 2311
    • 2312
    • 2313
    • 2314
    • 2315
    • 2316
    • 2317
    • 2318
    • 2319
    • 2320
    • 2321
    • 2322
    • 2323
    • 2324
    • 2325
    • 2326
    • 2327
    • 2328
    • 2329
    • 2330
    • 2331
    • 2332
    • 2333
    • 2334
    • 2335
    • 2336
    • 2337
    • 2338
    • 2339
    • 2340
    • 2341
    • 2342
    • 2343
    • 2344
    • 2345
    • 2346
    • 2347
    • 2348
    • 2349
    • 2350
    • 2351
    • 2352
    • 2353
    • 2354
    • 2355
    • 2356
    • 2357
    • 2358
    • 2359
    • 2360
    • 2361
    • 2362
    • 2363
    • 2364
    • 2365
    • 2366
    • 2367
    • 2368
    • 2369
    • 2370
    • 2371
    • 2372
    • 2373
    • 2374
    • 2375
    • 2376
    • 2377
    • 2378
    • 2379
    • 2380
    • 2381
    • 2382
    • 2383
    • 2384
    • 2385
    • 2386
    • 2387
    • 2388
    • 2389
    • 2390
    • 2391
    • 2392
    • 2393
    • 2394
    • 2395
    • 2396
    • 2397
    • 2398
    • 2399
    • 2400
    • 2401
    • 2402
    • 2403
    • 2404
    • 2405
    • 2406
    • 2407
    • 2408
    • 2409
    • 2410
    • 2411
    • 2412
    • 2413
    • 2414
    • 2415
    • 2416
    • 2417
    • 2418
    • 2419
    • 2420
    • 2421
    • 2422
    • 2423
    • 2424
    • 2425
    • 2426
    • 2427
    • 2428
    • 2429
    • 2430
    • 2431
    • 2432
    • 2433
    • 2434
    • 2435
    • 2436
    • 2437
    • 2438
    • 2439
    • 2440
    • 2441
    • 2442
    • 2443
    • 2444
    • 2445
    • 2446
    • 2447
    • 2448
    • 2449
    • 2450
    • 2451
    • 2452
    • 2453
    • 2454
    • 2455
    • 2456
    • 2457
    • 2458
    • 2459
    • 2460
    • 2461
    • 2462
    • 2463
    • 2464
    • 2465
    • 2466
    • 2467
    • 2468
    • 2469
    • 2470
    • 2471
    • 2472
    • 2473
    • 2474
    • 2475
    • 2476
    • 2477
    • 2478
    • 2479
    • 2480
    • 2481
    • 2482
    • 2483
    • 2484
    • 2485
    • 2486
    • 2487
    • 2488
    • 2489
    • 2490
    • 2491
    • 2492
    • 2493
    • 2494
    • 2495
    • 2496
    • 2497
    • 2498
    • 2499
    • 2500
    • 2501
    • 2502
    • 2503
    • 2504
    • 2505
    • 2506
    • 2507
    • 2508
    • 2509
    • 2510
    • 2511
    • 2512
    • 2513
    • 2514
    • 2515
    • 2516
    • 2517
    • 2518
    • 2519
    • 2520
    • 2521
    • 2522
    • 2523
    • 2524
    • 2525
    • 2526
    • 2527
    • 2528
    • 2529
    • 2530
    • 2531
    • 2532
    • 2533
    • 2534
    • 2535
    • 2536
    • 2537
    • 2538
    • 2539
    • 2540
    • 2541
    • 2542
    • 2543
    • 2544
    • 2545
    • 2546
    • 2547
    • 2548
    • 2549
    • 2550
    • 2551
    • 2552
    • 2553
    • 2554
    • 2555
    • 2556
    • 2557
    • 2558
    • 2559
    • 2560
    • 2561
    • 2562
    • 2563
    • 2564
    • 2565
    • 2566
    • 2567
    • 2568
    • 2569
    • 2570
    • 2571
    • 2572
    • 2573
    • 2574
    • 2575
    • 2576
    • 2577
    • 2578
    • 2579
    • 2580
    • 2581
    • 2582
    • 2583
    • 2584
    • 2585
    • 2586
    • 2587
    • 2588
    • 2589
    • 2590
    • 2591
    • 2592
    • 2593
    • 2594
    • 2595
    • 2596
    • 2597
    • 2598
    • 2599
    • 2600
    • 2601
    • 2602
    • 2603
    • 2604
    • 2605
    • 2606
    • 2607
    • 2608
    • 2609
    • 2610
    • 2611
    • 2612
    • 2613
    • 2614
    • 2615
    • 2616
    • 2617
    • 2618
    • 2619
    • 2620
    • 2621
    • 2622
    • 2623
    • 2624
    • 2625
    • 2626
    • 2627
    • 2628
    • 2629
    • 2630
    • 2631
    • 2632
    • 2633
    • 2634
    • 2635
    • 2636
    • 2637
    • 2638
    • 2639
    • 2640
    • 2641
    • 2642
    • 2643
    • 2644
    • 2645
    • 2646
    • 2647
    • 2648
    • 2649
    • 2650
    • 2651
    • 2652
    • 2653
    • 2654
    • 2655
    • 2656
    • 2657
    • 2658
    • 2659
    • 2660
    • 2661
    • 2662
    • 2663
    • 2664
    • 2665
    • 2666
    • 2667
    • 2668
    • 2669
    • 2670
    • 2671
    • 2672
    • 2673
    • 2674
    • 2675
    • 2676
    • 2677
    • 2678
    • 2679
    • 2680
    • 2681
    • 2682
    • 2683
    • 2684
    • 2685
    • 2686
    • 2687
    • 2688
    • 2689
    • 2690
    • 2691
    • 2692
    • 2693
    • 2694
    • 2695
    • 2696
    • 2697
    • 2698
    • 2699
    • 2700
    • 2701
    • 2702
    • 2703
    • 2704
    • 2705
    • 2706
    • 2707
    • 2708
    • 2709
    • 2710
    • 2711
    • 2712
    • 2713
    • 2714
    • 2715
    • 2716
    • 2717
    • 2718
    • 2719
    • 2720
    • 2721
    • 2722
    • 2723
    • 2724
    • 2725
    • 2726
    • 2727
    • 2728
    • 2729
    • 2730
    • 2731
    • 2732
    • 2733
    • 2734
    • 2735
    • 2736
    • 2737
    • 2738
    • 2739
    • 2740
    • 2741
    • 2742
    • 2743
    • 2744
    • 2745
    • 2746
    • 2747
    • 2748
    • 2749
    • 2750
    • 2751
    • 2752
    • 2753
    • 2754
    • 2755
    • 2756
    • 2757
    • 2758
    • 2759
    • 2760
    • 2761
    • 2762
    • 2763
    • 2764
    • 2765
    • 2766
    • 2767
    • 2768
    • 2769
    • 2770
    • 2771
    • 2772
    • 2773
    • 2774
    • 2775
    • 2776
    • 2777
    • 2778
    • 2779
    • 2780
    • 2781
    • 2782
    • 2783
    • 2784
    • 2785
    • 2786
    • 2787
    • 2788
    • 2789
    • 2790
    • 2791
    • 2792
    • 2793
    • 2794
    • 2795
    • 2796
    • 2797
    • 2798
    • 2799
    • 2800
    • 2801
    • 2802
    • 2803
    • 2804
    • 2805
    • 2806
    • 2807
    • 2808
    • 2809
    • 2810
    • 2811
    • 2812
    • 2813
    • 2814
    • 2815
    • 2816
    • 2817
    • 2818
    • 2819
    • 2820
    • 2821
    • 2822
    • 2823
    • 2824
    • 2825
    • 2826
    • 2827
    • 2828
    • 2829
    • 2830
    • 2831
    • 2832
    • 2833
    • 2834
    • 2835
    • 2836
    • 2837
    • 2838
    • 2839
    • 2840
    • 2841
    • 2842
    • 2843
    • 2844
    • 2845
    • 2846
    • 2847
    • 2848
    • 2849
    • 2850
    • 2851
    • 2852
    • 2853
    • 2854
    • 2855
    • 2856
    • 2857
    • 2858
    • 2859
    • 2860
    • 2861
    • 2862
    • 2863
    • 2864
    • 2865
    • 2866
    • 2867
    • 2868
    • 2869
    • 2870
    • 2871
    • 2872
    • 2873
    • 2874
    • 2875
    • 2876
    • 2877
    • 2878
    • 2879
    • 2880
    • 2881
    • 2882
    • 2883
    • 2884
    • 2885
    • 2886
    • 2887
    • 2888
    • 2889
    • 2890
    • 2891
    • 2892
    • 2893
    • 2894
    • 2895
    • 2896
    • 2897
    • 2898
    • 2899
    • 2900
    • 2901
    • 2902
    • 2903
    • 2904
    • 2905
    • 2906
    • 2907
    • 2908
    • 2909
    • 2910
    • 2911
    • 2912
    • 2913
    • 2914
    • 2915
    • 2916
    • 2917
    • 2918
    • 2919
    • 2920
    • 2921
    • 2922
    • 2923
    • 2924
    • 2925
    • 2926
    • 2927
    • 2928
    • 2929
    • 2930
    • 2931
    • 2932
    • 2933
    • 2934
    • 2935
    • 2936
    • 2937
    • 2938
    • 2939
    • 2940
    • 2941
    • 2942
    • 2943
    • 2944
    • 2945
    • 2946
    • 2947
    • 2948
    • 2949
    • 2950
    • 2951
    • 2952
    • 2953
    • 2954
    • 2955
    • 2956
    • 2957
    • 2958
    • 2959
    • 2960
    • 2961
    • 2962
    • 2963
    • 2964
    • 2965
    • 2966
    • 2967
    • 2968
    • 2969
    • 2970
    • 2971
    • 2972
    • 2973
    • 2974
    • 2975
    • 2976
    • 2977
    • 2978
    • 2979
    • 2980
    • 2981
    • 2982
    • 2983
    • 2984
    • 2985
    • 2986
    • 2987
    • 2988
    • 2989
    • 2990
    • 2991
    • 2992
    • 2993
    • 2994
    • 2995
    • 2996
    • 2997
    • 2998
    • 2999
    • 3000
    • 3001
    • 3002
    • 3003
    • 3004
    • 3005
    • 3006
    • 3007
    • 3008
    • 3009
    • 3010
    • 3011
    • 3012
    • 3013
    • 3014
    • 3015
    • 3016
    • 3017
    • 3018
    • 3019
    • 3020
    • 3021
    • 3022
    • 3023
    • 3024
    • 3025
    • 3026
    • 3027
    • 3028
    • 3029
    • 3030
    • 3031
    • 3032
    • 3033
    • 3034
    • 3035
    • 3036
    • 3037
    • 3038
    • 3039
    • 3040
    • 3041
    • 3042
    • 3043
    • 3044
    • 3045
    • 3046
    • 3047
    • 3048
    • 3049
    • 3050
    • 3051
    • 3052
    • 3053
    • 3054
    • 3055
    • 3056
    • 3057
    • 3058
    • 3059
    • 3060
    • 3061
    • 3062
    • 3063
    • 3064
    • 3065
    • 3066
    • 3067
    • 3068
    • 3069
    • 3070
    • 3071
    • 3072
    • 3073
    • 3074
    • 3075
    • 3076
    • 3077
    • 3078
    • 3079
    • 3080
    • 3081
    • 3082
    • 3083
    • 3084
    • 3085
    • 3086
    • 3087
    • 3088
    • 3089
    • 3090
    • 3091
    • 3092
    • 3093
    • 3094
    • 3095
    • 3096
    • 3097
    • 3098
    • 3099
    • 3100
    • 3101
    • 3102
    • 3103
    • 3104
    • 3105
    • 3106
    • 3107
    • 3108
    • 3109
    • 3110
    • 3111
    • 3112
    • 3113
    • 3114
    • 3115
    • 3116
    • 3117
    • 3118
    • 3119
    • 3120
    • 3121
    • 3122
    • 3123
    • 3124
    • 3125
    • 3126
    • 3127
    • 3128
    • 3129
    • 3130
    • 3131
    • 3132
    • 3133
    • 3134
    • 3135
    • 3136
    • 3137
    • 3138
    • 3139
    • 3140
    • 3141
    • 3142
    • 3143
    • 3144
    • 3145
    • 3146
    • 3147
    • 3148
    • 3149
    • 3150
    • 3151
    • 3152
    • 3153
    • 3154
    • 3155
    • 3156
    • 3157
    • 3158
    • 3159
    • 3160
    • 3161
    • 3162
    • 3163
    • 3164
    • 3165
    • 3166
    • 3167
    • 3168
    • 3169
    • 3170
    • 3171
    • 3172
    • 3173
    • 3174
    • 3175
    • 3176
    • 3177
    • 3178
    • 3179
    • 3180
    • 3181
    • 3182
    • 3183
    • 3184
    • 3185
    • 3186
    • 3187
    • 3188
    • 3189
    • 3190
    • 3191
    • 3192
    • 3193
    • 3194
    • 3195
    • 3196
    • 3197
    • 3198
    • 3199
    • 3200
    • 3201
    • 3202
    • 3203
    • 3204
    • 3205
    • 3206
    • 3207
    • 3208
    • 3209
    • 3210
    • 3211
    • 3212
    • 3213
    • 3214
    • 3215
    • 3216
    • 3217
    • 3218
    • 3219
    • 3220
    • 3221
    • 3222
    • 3223
    • 3224
    • 3225
    • 3226
    • 3227
    • 3228
    • 3229
    • 3230
    • 3231
    • 3232
    • 3233
    • 3234
    • 3235
    • 3236
    • 3237
    • 3238
    • 3239
    • 3240
    • 3241
    • 3242
    • 3243
    • 3244
    • 3245
    • 3246
    • 3247
    • 3248
    • 3249
    • 3250
    • 3251
    • 3252
    • 3253
    • 3254
    • 3255
    • 3256
    • 3257
    • 3258
    • 3259
    • 3260
    • 3261
    • 3262
    • 3263
    • 3264
    • 3265
    • 3266
    • 3267
    • 3268
    • 3269
    • 3270
    • 3271
    • 3272
    • 3273
    • 3274
    • 3275
    • 3276
    • 3277
    • 3278
    • 3279
    • 3280
    • 3281
    • 3282
    • 3283
    • 3284
    • 3285
    • 3286
    • 3287
    • 3288
    • 3289
    • 3290
    • 3291
    • 3292
    • 3293
    • 3294
    • 3295
    • 3296
    • 3297
    • 3298
    • 3299
    • 3300
    • 3301
    • 3302
    • 3303
    • 3304
    • 3305
    • 3306
    • 3307
    • 3308
    • 3309
    • 3310
    • 3311
    • 3312
    • 3313
    • 3314
    • 3315
    • 3316
    • 3317
    • 3318
    • 3319
    • 3320
    • 3321
    • 3322
    • 3323
    • 3324
    • 3325
    • 3326
    • 3327
    • 3328
    • 3329
    • 3330
    • 3331
    • 3332
    • 3333
    • 3334
    • 3335
    • 3336
    • 3337
    • 3338
    • 3339
    • 3340
    • 3341
    • 3342
    • 3343
    • 3344
    • 3345
    • 3346
    • 3347
    • 3348
    • 3349
    • 3350
    • 3351
    • 3352
    • 3353
    • 3354
    • 3355
    • 3356
    • 3357
    • 3358
    • 3359
    • 3360
    • 3361
    • 3362
    • 3363
    • 3364
    • 3365
    • 3366
    • 3367
    • 3368
    • 3369
    • 3370
    • 3371
    • 3372
    • 3373
    • 3374
    • 3375
    • 3376
    • 3377
    • 3378
    • 3379
    • 3380
    • 3381
    • 3382
    • 3383
    • 3384
    • 3385
    • 3386
    • 3387
    • 3388
    • 3389
    • 3390
    • 3391
    • 3392
    • 3393
    • 3394
    • 3395
    • 3396
    • 3397
    • 3398
    • 3399
    • 3400
    • 3401
    • 3402
    • 3403
    • 3404
    • 3405
    • 3406
    • 3407
    • 3408
    • 3409
    • 3410
    • 3411
    • 3412
    • 3413
    • 3414
    • 3415
    • 3416
    • 3417
    • 3418
    • 3419
    • 3420
    • 3421
    • 3422
    • 3423
    • 3424
    • 3425
    • 3426
    • 3427
    • 3428
    • 3429
    • 3430
    • 3431
    • 3432
    • 3433
    • 3434
    • 3435
    • 3436
    • 3437
    • 3438
    • 3439
    • 3440
    • 3441
    • 3442
    • 3443
    • 3444
    • 3445
    • 3446
    • 3447
    • 3448
    • 3449
    • 3450
    • 3451
    • 3452
    • 3453
    • 3454
    • 3455
    • 3456
    • 3457
    • 3458
    • 3459
    • 3460
    • 3461
    • 3462
    • 3463
    • 3464
    • 3465
    • 3466
    • 3467
    • 3468
    • 3469
    • 3470
    • 3471
    • 3472
    • 3473
    • 3474
    • 3475
    • 3476
    • 3477
    • 3478
    • 3479
    • 3480
    • 3481
    • 3482
    • 3483
    • 3484
    • 3485
    • 3486
    • 3487
    • 3488
    • 3489
    • 3490
    • 3491
    • 3492
    • 3493
    • 3494
    • 3495
    • 3496
    • 3497
    • 3498
    • 3499
    • 3500
    • 3501
    • 3502
    • 3503
    • 3504
    • 3505
    • 3506
    • 3507
    • 3508
    • 3509
    • 3510
    • 3511
    • 3512
    • 3513
    • 3514
    • 3515
    • 3516
    • 3517
    • 3518
    • 3519
    • 3520
    • 3521
    • 3522
    • 3523
    • 3524
    • 3525
    • 3526
    • 3527
    • 3528
    • 3529
    • 3530
    • 3531
    • 3532
    • 3533
    • 3534
    • 3535
    • 3536
    • 3537
    • 3538
    • 3539
    • 3540
    • 3541
    • 3542
    • 3543
    • 3544
    • 3545
    • 3546
    • 3547
    • 3548
    • 3549
    • 3550
    • 3551
    • 3552
    • 3553
    • 3554
    • 3555
    • 3556
    • 3557
    • 3558
    • 3559
    • 3560
    • 3561
    • 3562
    • 3563
    • 3564
    • 3565
    • 3566
    • 3567
    • 3568
    • 3569
    • 3570
    • 3571
    • 3572
    • 3573
    • 3574
    • 3575
    • 3576
    • 3577
    • 3578
    • 3579
    • 3580
    • 3581
    • 3582
    • 3583
    • 3584
    • 3585
    • 3586
    • 3587
    • 3588
    • 3589
    • 3590
    • 3591
    • 3592
    • 3593
    • 3594
    • 3595
    • 3596
    • 3597
    • 3598
    • 3599
    • 3600
    • 3601
    • 3602
    • 3603
    • 3604
    • 3605
    • 3606
    • 3607
    • 3608
    • 3609
    • 3610
    • 3611
    • 3612
    • 3613
    • 3614
    • 3615
    • 3616
    • 3617
    • 3618
    • 3619
    • 3620
    • 3621
    • 3622
    • 3623
    • 3624
    • 3625
    • 3626
    • 3627
    • 3628
    • 3629
    • 3630
    • 3631
    • 3632
    • 3633
    • 3634
    • 3635
    • 3636
    • 3637
    • 3638
    • 3639
    • 3640
    • 3641
    • 3642
    • 3643
    • 3644
    • 3645
    • 3646
    • 3647
    • 3648
    • 3649
    • 3650
    • 3651
    • 3652
    • 3653
    • 3654
    • 3655
    • 3656
    • 3657
    • 3658
    • 3659
    • 3660
    • 3661
    • 3662
    • 3663
    • 3664
    • 3665
    • 3666
    • 3667
    • 3668
    • 3669
    • 3670
    • 3671
    • 3672
    • 3673
    • 3674
    • 3675
    • 3676
    • 3677
    • 3678
    • 3679
    • 3680
    • 3681
    • 3682
    • 3683
    • 3684
    • 3685
    • 3686
    • 3687
    • 3688
    • 3689
    • 3690
    • 3691
    • 3692
    • 3693
    • 3694
    • 3695
    • 3696
    • 3697
    • 3698
    • 3699
    • 3700
    • 3701
    • 3702
    • 3703
    • 3704
    • 3705
    • 3706
    • 3707
    • 3708
    • 3709
    • 3710
    • 3711
    • 3712
    • 3713
    • 3714
    • 3715
    • 3716
    • 3717
    • 3718
    • 3719
    • 3720
    • 3721
    • 3722
    • 3723
    • 3724
    • 3725
    • 3726
    • 3727
    • 3728
    • 3729
    • 3730
    • 3731
    • 3732
    • 3733
    • 3734
    • 3735
    • 3736
    • 3737
    • 3738
    • 3739
    • 3740
    • 3741
    • 3742
    • 3743
    • 3744
    • 3745
    • 3746
    • 3747
    • 3748
    • 3749
    • 3750
    • 3751
    • 3752
    • 3753
    • 3754
    • 3755
    • 3756
    • 3757
    • 3758
    • 3759
    • 3760
    • 3761
    • 3762
    • 3763
    • 3764
    • 3765
    • 3766
    • 3767
    • 3768
    • 3769
    • 3770
    • 3771
    • 3772
    • 3773
    • 3774
    • 3775
    • 3776
    • 3777
    • 3778
    • 3779
    • 3780
    • 3781
    • 3782
    • 3783
    • 3784
    • 3785
    • 3786
    • 3787
    • 3788
    • 3789
    • 3790
    • 3791
    • 3792
    • 3793
    • 3794
    • 3795
    • 3796
    • 3797
    • 3798
    • 3799
    • 3800
    • 3801
    • 3802
    • 3803
    • 3804
    • 3805
    • 3806
    • 3807
    • 3808
    • 3809
    • 3810
    • 3811
    • 3812
    • 3813
    • 3814
    • 3815
    • 3816
    • 3817
    • 3818
    • 3819
    • 3820
    • 3821
    • 3822
    • 3823
    • 3824
    • 3825
    • 3826
    • 3827
    • 3828
    • 3829
    • 3830
    • 3831
    • 3832
    • 3833
    • 3834
    • 3835
    • 3836
    • 3837
    • 3838
    • 3839
    • 3840
    • 3841
    • 3842
    • 3843
    • 3844
    • 3845
    • 3846
    • 3847
    • 3848
    • 3849
    • 3850
    • 3851
    • 3852
    • 3853
    • 3854
    • 3855
    • 3856
    • 3857
    • 3858
    • 3859
    • 3860
    • 3861
    • 3862
    • 3863
    • 3864
    • 3865
    • 3866
    • 3867
    • 3868
    • 3869
    • 3870
    • 3871
    • 3872
    • 3873
    • 3874
    • 3875
    • 3876
    • 3877
    • 3878
    • 3879
    • 3880
    • 3881
    • 3882
    • 3883
    • 3884
    • 3885
    • 3886
    • 3887
    • 3888
    • 3889
    • 3890
    • 3891
    • 3892
    • 3893
    • 3894
    • 3895
    • 3896
    • 3897
    • 3898
    • 3899
    • 3900
    • 3901
    • 3902
    • 3903
    • 3904
    • 3905
    • 3906
    • 3907
    • 3908
    • 3909
    • 3910
    • 3911
    • 3912
    • 3913
    • 3914
    • 3915
    • 3916
    • 3917
    • 3918
    • 3919
    • 3920
    • 3921
    • 3922
    • 3923
    • 3924
    • 3925
    • 3926
    • 3927
    • 3928
    • 3929
    • 3930
    • 3931
    • 3932
    • 3933
    • 3934
    • 3935
    • 3936
    • 3937
    • 3938
    • 3939
    • 3940
    • 3941
    • 3942
    • 3943
    • 3944
    • 3945
    • 3946
    • 3947
    • 3948
    • 3949
    • 3950
    • 3951
    • 3952
    • 3953
    • 3954
    • 3955
    • 3956
    • 3957
    • 3958
    • 3959
    • 3960
    • 3961
    • 3962
    • 3963
    • 3964
    • 3965
    • 3966
    • 3967
    • 3968
    • 3969
    • 3970
    • 3971
    • 3972
    • 3973
    • 3974
    • 3975
    • 3976
    • 3977
    • 3978
    • 3979
    • 3980
    • 3981
    • 3982
    • 3983
    • 3984
    • 3985
    • 3986
    • 3987
    • 3988
    • 3989
    • 3990
    • 3991
    • 3992
    • 3993
    • 3994
    • 3995
    • 3996
    • 3997
    • 3998
    • 3999
    • 4000
    • 4001
    • 4002
    • 4003
    • 4004
    • 4005
    • 4006
    • 4007
    • 4008
    • 4009
    • 4010
    • 4011
    • 4012
    • 4013
    • 4014
    • 4015
    • 4016
    • 4017
    • 4018
    • 4019
    • 4020
    • 4021
    • 4022
    • 4023
    • 4024
    • 4025
    • 4026
    • 4027
    • 4028
    • 4029
    • 4030
    • 4031
    • 4032
    • 4033
    • 4034
    • 4035
    • 4036
    • 4037
    • 4038
    • 4039
    • 4040
    • 4041
    • 4042
    • 4043
    • 4044
    • 4045
    • 4046
    • 4047
    • 4048
    • 4049
    • 4050
    • 4051
    • 4052
    • 4053
    • 4054
    • 4055
    • 4056
    • 4057
    • 4058
    • 4059
    • 4060
    • 4061
    • 4062
    • 4063
    • 4064
    • 4065
    • 4066
    • 4067
    • 4068
    • 4069
    • 4070
    • 4071
    • 4072
    • 4073
    • 4074
    • 4075
    • 4076
    • 4077
    • 4078
    • 4079
    • 4080
    • 4081
    • 4082
    • 4083
    • 4084
    • 4085
    • 4086
    • 4087
    • 4088
    • 4089
    • 4090
    • 4091
    • 4092
    • 4093
    • 4094
    • 4095
    • 4096
    • 4097
    • 4098
    • 4099
    • 4100
    • 4101
    • 4102
    • 4103
    • 4104
    • 4105
    • 4106
    • 4107
    • 4108
    • 4109
    • 4110
    • 4111
    • 4112
    • 4113
    • 4114
    • 4115
    • 4116
    • 4117
    • 4118
    • 4119
    • 4120
    • 4121
    • 4122
    • 4123
    • 4124
    • 4125
    • 4126
    • 4127
    • 4128
    • 4129
    • 4130
    • 4131
    • 4132
    • 4133
    • 4134
    • 4135
    • 4136
    • 4137
    • 4138
    • 4139
    • 4140
    • 4141
    • 4142
    • 4143
    • 4144
    • 4145
    • 4146
    • 4147
    • 4148
    • 4149
    • 4150
    • 4151
    • 4152
    • 4153
    • 4154
    • 4155
    • 4156
    • 4157
    • 4158
    • 4159
    • 4160
    • 4161
    • 4162
    • 4163
    • 4164
    • 4165
    • 4166
    • 4167
    • 4168
    • 4169
    • 4170
    • 4171
    • 4172
    • 4173
    • 4174
    • 4175
    • 4176
    • 4177
    • 4178
    • 4179
    • 4180
    • 4181
    • 4182
    • 4183
    • 4184
    • 4185
    • 4186
    • 4187
    • 4188
    • 4189
    • 4190
    • 4191
    • 4192
    • 4193
    • 4194
    • 4195
    • 4196
    • 4197
    • 4198
    • 4199
    • 4200
    • 4201
    • 4202
    • 4203
    • 4204
    • 4205
    • 4206
    • 4207
    • 4208
    • 4209
    • 4210
    • 4211
    • 4212
    • 4213
    • 4214
    • 4215
    • 4216
    • 4217
    • 4218
    • 4219
    • 4220
    • 4221
    • 4222
    • 4223
    • 4224
    • 4225
    • 4226
    • 4227
    • 4228
    • 4229
    • 4230
    • 4231
    • 4232
    • 4233
    • 4234
    • 4235
    • 4236
    • 4237
    • 4238
    • 4239
    • 4240
    • 4241
    • 4242
    • 4243
    • 4244
    • 4245
    • 4246
    • 4247
    • 4248
    • 4249
    • 4250
    • 4251
    • 4252
    • 4253
    • 4254
    • 4255
    • 4256
    • 4257
    • 4258
    • 4259
    • 4260
    • 4261
    • 4262
    • 4263
    • 4264
    • 4265
    • 4266
    • 4267
    • 4268
    • 4269
    • 4270
    • 4271
    • 4272
    • 4273
    • 4274
    • 4275
    • 4276
    • 4277
    • 4278
    • 4279
    • 4280
    • 4281
    • 4282
    • 4283
    • 4284
    • 4285
    • 4286
    • 4287
    • 4288
    • 4289
    • 4290
    • 4291
    • 4292
    • 4293
    • 4294
    • 4295
    • 4296
    • 4297
    • 4298
    • 4299
    • 4300
    • 4301
    • 4302
    • 4303
    • 4304
    • 4305
    • 4306
    • 4307
    • 4308
    • 4309
    • 4310
    • 4311
    • 4312
    • 4313
    • 4314
    • 4315
    • 4316
    • 4317
    • 4318
    • 4319
    • 4320
    • 4321
    • 4322
    • 4323
    • 4324
    • 4325
    • 4326
    • 4327
    • 4328
    • 4329
    • 4330
    • 4331
    • 4332
    • 4333
    • 4334
    • 4335
    • 4336
    • 4337
    • 4338
    • 4339
    • 4340
    • 4341
    • 4342
    • 4343
    • 4344
    • 4345
    • 4346
    • 4347
    • 4348
    • 4349
    • 4350
    • 4351
    • 4352
    • 4353
    • 4354
    • 4355
    • 4356
    • 4357
    • 4358
    • 4359
    • 4360
    • 4361
    • 4362
    • 4363
    • 4364
    • 4365
    • 4366
    • 4367
    • 4368
    • 4369
    • 4370
    • 4371
    • 4372
    • 4373
    • 4374
    • 4375
    • 4376
    • 4377
    • 4378
    • 4379
    • 4380
    • 4381
    • 4382
    • 4383
    • 4384
    • 4385
    • 4386
    • 4387
    • 4388
    • 4389
    • 4390
    • 4391
    • 4392
    • 4393
    • 4394
    • 4395
    • 4396
    • 4397
    • 4398
    • 4399
    • 4400
    • 4401
    • 4402
    • 4403
    • 4404
    • 4405
    • 4406
    • 4407
    • 4408
    • 4409
    • 4410
    • 4411
    • 4412
    • 4413
    • 4414
    • 4415
    • 4416
    • 4417
    • 4418
    • 4419
    • 4420
    • 4421
    • 4422
    • 4423
    • 4424
    • 4425
    • 4426
    • 4427
    • 4428
    • 4429
    • 4430
    • 4431
    • 4432
    • 4433
    • 4434
    • 4435
    • 4436
    • 4437
    • 4438
    • 4439
    • 4440
    • 4441
    • 4442
    • 4443
    • 4444
    • 4445
    • 4446
    • 4447
    • 4448
    • 4449
    • 4450
    • 4451
    • 4452
    • 4453
    • 4454
    • 4455
    • 4456
    • 4457
    • 4458
    • 4459
    • 4460
    • 4461
    • 4462
    • 4463
    • 4464
    • 4465
    • 4466
    • 4467
    • 4468
    • 4469
    • 4470
    • 4471
    • 4472
    • 4473
    • 4474
    • 4475
    • 4476
    • 4477
    • 4478
    • 4479
    • 4480
    • 4481
    • 4482
    • 4483
    • 4484
    • 4485
    • 4486
    • 4487
    • 4488
    • 4489
    • 4490
    • 4491
    • 4492
    • 4493
    • 4494
    • 4495
    • 4496
    • 4497
    • 4498
    • 4499
    • 4500
    • 4501
    • 4502
    • 4503
    • 4504
    • 4505
    • 4506
    • 4507
    • 4508
    • 4509
    • 4510
    • 4511
    • 4512
    • 4513
    • 4514
    • 4515
    • 4516
    • 4517
    • 4518
    • 4519
    • 4520
    • 4521
    • 4522
    • 4523
    • 4524
    • 4525
    • 4526
    • 4527
    • 4528
    • 4529
    • 4530
    • 4531
    • 4532
    • 4533
    • 4534
    • 4535
    • 4536
    • 4537
    • 4538
    • 4539
    • 4540
    • 4541
    • 4542
    • 4543
    • 4544
    • 4545
    • 4546
    • 4547
    • 4548
    • 4549
    • 4550
    • 4551
    • 4552
    • 4553
    • 4554
    • 4555
    • 4556
    • 4557
    • 4558
    • 4559
    • 4560
    • 4561
    • 4562
    • 4563
    • 4564
    • 4565
    • 4566
    • 4567
    • 4568
    • 4569
    • 4570
    • 4571
    • 4572
    • 4573
    • 4574
    • 4575
    • 4576
    • 4577
    • 4578
    • 4579
    • 4580
    • 4581
    • 4582
    • 4583
    • 4584
    • 4585
    • 4586
    • 4587
    • 4588
    • 4589
    • 4590
    • 4591
    • 4592
    • 4593
    • 4594
    • 4595
    • 4596
    • 4597
    • 4598
    • 4599
    • 4600
    • 4601
    • 4602
    • 4603
    • 4604
    • 4605
    • 4606
    • 4607
    • 4608
    • 4609
    • 4610
    • 4611
    • 4612
    • 4613
    • 4614
    • 4615
    • 4616
    • 4617
    • 4618
    • 4619
    • 4620
    • 4621
    • 4622
    • 4623
    • 4624
    • 4625
    • 4626
    • 4627
    • 4628
    • 4629
    • 4630
    • 4631
    • 4632
    • 4633
    • 4634
    • 4635
    • 4636
    • 4637
    • 4638
    • 4639
    • 4640
    • 4641
    • 4642
    • 4643
    • 4644
    • 4645
    • 4646
    • 4647
    • 4648
    • 4649
    • 4650
    • 4651
    • 4652
    • 4653
    • 4654
    • 4655
    • 4656
    • 4657
    • 4658
    • 4659
    • 4660
    • 4661
    • 4662
    • 4663
    • 4664
    • 4665
    • 4666
    • 4667
    • 4668
    • 4669
    • 4670
    • 4671
    • 4672
    • 4673
    • 4674
    • 4675
    • 4676
    • 4677
    • 4678
    • 4679
    • 4680
    • 4681
    • 4682
    • 4683
    • 4684
    • 4685
    • 4686
    • 4687
    • 4688
    • 4689
    • 4690
    • 4691
    • 4692
    • 4693
    • 4694
    • 4695
    • 4696
    • 4697
    • 4698
    • 4699
    • 4700
    • 4701
    • 4702
    • 4703
    • 4704
    • 4705
    • 4706
    • 4707
    • 4708
    • 4709
    • 4710
    • 4711
    • 4712
    • 4713
    • 4714
    • 4715
    • 4716
    • 4717
    • 4718
    • 4719
    • 4720
    • 4721
    • 4722
    • 4723
    • 4724
    • 4725
    • 4726
    • 4727
    • 4728
    • 4729
    • 4730
    • 4731
    • 4732
    • 4733
    • 4734
    • 4735
    • 4736
    • 4737
    • 4738
    • 4739
    • 4740
    • 4741
    • 4742
    • 4743
    • 4744
    • 4745
    • 4746
    • 4747
    • 4748
    • 4749
    • 4750
    • 4751
    • 4752
    • 4753
    • 4754
    • 4755
    • 4756
    • 4757
    • 4758
    • 4759
    • 4760
    • 4761
    • 4762
    • 4763
    • 4764
    • 4765
    • 4766
    • 4767
    • 4768
    • 4769
    • 4770
    • 4771
    • 4772
    • 4773
    • 4774
    • 4775
    • 4776
    • 4777
    • 4778
    • 4779
    • 4780
    • 4781
    • 4782
    • 4783
    • 4784
    • 4785
    • 4786
    • 4787
    • 4788
    • 4789
    • 4790
    • 4791
    • 4792
    • 4793
    • 4794
    • 4795
    • 4796
    • 4797
    • 4798
    • 4799
    • 4800
    • 4801
    • 4802
    • 4803
    • 4804
    • 4805
    • 4806
    • 4807
    • 4808
    • 4809
    • 4810
    • 4811
    • 4812
    • 4813
    • 4814
    • 4815
    • 4816
    • 4817
    • 4818
    • 4819
    • 4820
    • 4821
    • 4822
    • 4823
    • 4824
    • 4825
    • 4826
    • 4827
    • 4828
    • 4829
    • 4830
    • 4831
    • 4832
    • 4833
    • 4834
    • 4835
    • 4836
    • 4837
    • 4838
    • 4839
    • 4840
    • 4841
    • 4842
    • 4843
    • 4844
    • 4845
    • 4846
    • 4847
    • 4848
    • 4849
    • 4850
    • 4851
    • 4852
    • 4853
    • 4854
    • 4855
    • 4856
    • 4857
    • 4858
    • 4859
    • 4860
    • 4861
    • 4862
    • 4863
    • 4864
    • 4865
    • 4866
    • 4867
    • 4868
    • 4869
    • 4870
    • 4871
    • 4872
    • 4873
    • 4874
    • 4875
    • 4876
    • 4877
    • 4878
    • 4879
    • 4880
    • 4881
    • 4882
    • 4883
    • 4884
    • 4885
    • 4886
    • 4887
    • 4888
    • 4889
    • 4890
    • 4891
    • 4892
    • 4893
    • 4894
    • 4895
    • 4896
    • 4897
    • 4898
    • 4899
    • 4900
    • 4901
    • 4902
    • 4903
    • 4904
    • 4905
    • 4906
    • 4907
    • 4908
    • 4909
    • 4910
    • 4911
    • 4912
    • 4913
    • 4914
    • 4915
    • 4916
    • 4917
    • 4918
    • 4919
    • 4920
    • 4921
    • 4922
    • 4923
    • 4924
    • 4925
    • 4926
    • 4927
    • 4928
    • 4929
    • 4930
    • 4931
    • 4932
    • 4933
    • 4934
    • 4935
    • 4936
    • 4937
    • 4938
    • 4939
    • 4940
    • 4941
    • 4942
    • 4943
    • 4944
    • 4945
    • 4946
    • 4947
    • 4948
    • 4949
    • 4950
    • 4951
    • 4952
    • 4953
    • 4954
    • 4955
    • 4956
    • 4957
    • 4958
    • 4959
    • 4960
    • 4961
    • 4962
    • 4963
    • 4964
    • 4965
    • 4966
    • 4967
    • 4968
    • 4969
    • 4970
    • 4971
    • 4972
    • 4973
    • 4974
    • 4975
    • 4976
    • 4977
    • 4978
    • 4979
    • 4980
    • 4981
    • 4982
    • 4983
    • 4984
    • 4985
    • 4986
    • 4987
    • 4988
    • 4989
    • 4990
    • 4991
    • 4992
    • 4993
    • 4994
    • 4995
    • 4996
    • 4997
    • 4998
    • 4999
    • 5000
    • 5001
    • 5002
    • 5003
    • 5004
    • 5005
    • 5006
    • 5007
    • 5008
    • 5009
    • 5010
    • 5011
    • 5012
    • 5013
    • 5014
    • 5015
    • 5016
    • 5017
    • 5018
    • 5019
    • 5020
    • 5021
    • 5022
    • 5023
    • 5024
    • 5025
    • 5026
    • 5027
    • 5028
    • 5029
    • 5030
    • 5031
    • 5032
    • 5033
    • 5034
    • 5035
    • 5036
    • 5037
    • 5038
    • 5039
    • 5040
    • 5041
    • 5042
    • 5043
    • 5044
    • 5045
    • 5046
    • 5047
    • 5048
    • 5049
    • 5050
    • 5051
    • 5052
    • 5053
    • 5054
    • 5055
    • 5056
    • 5057
    • 5058
    • 5059
    • 5060
    • 5061
    • 5062
    • 5063
    • 5064
    • 5065
    • 5066
    • 5067
    • 5068
    • 5069
    • 5070
    • 5071
    • 5072
    • 5073
    • 5074
    • 5075
    • 5076
    • 5077
    • 5078
    • 5079
    • 5080
    • 5081
    • 5082
    • 5083
    • 5084
    • 5085
    • 5086
    • 5087
    • 5088
    • 5089
    • 5090
    • 5091
    • 5092
    • 5093
    • 5094
    • 5095
    • 5096
    • 5097
    • 5098
    • 5099
    • 5100
    • 5101
    • 5102
    • 5103
    • 5104
    • 5105
    • 5106
    • 5107
    • 5108
    • 5109
    • 5110
    • 5111
    • 5112
    • 5113
    • 5114
    • 5115
    • 5116
    • 5117
    • 5118
    • 5119
    • 5120
    • 5121
    • 5122
    • 5123
    • 5124
    • 5125
    • 5126
    • 5127
    • 5128
    • 5129
    • 5130
    • 5131
    • 5132
    • 5133
    • 5134
    • 5135
    • 5136
    • 5137
    • 5138
    • 5139
    • 5140
    • 5141
    • 5142
    • 5143
    • 5144
    • 5145
    • 5146
    • 5147
    • 5148
    • 5149
    • 5150
    • 5151
    • 5152
    • 5153
    • 5154
    • 5155
    • 5156
    • 5157
    • 5158
    • 5159
    • 5160
    • 5161
    • 5162
    • 5163
    • 5164
    • 5165
    • 5166
    • 5167
    • 5168
    • 5169
    • 5170
    • 5171
    • 5172
    • 5173
    • 5174
    • 5175
    • 5176
    • 5177
    • 5178
    • 5179
    • 5180
    • 5181
    • 5182
    • 5183
    • 5184
    • 5185
    • 5186
    • 5187
    • 5188
    • 5189
    • 5190
    • 5191
    • 5192
    • 5193
    • 5194
    • 5195
    • 5196
    • 5197
    • 5198
    • 5199
    • 5200
    • 5201
    • 5202
    • 5203
    • 5204
    • 5205
    • 5206
    • 5207
    • 5208
    • 5209
    • 5210
    • 5211
    • 5212
    • 5213
    • 5214
    • 5215
    • 5216
    • 5217
    • 5218
    • 5219
    • 5220
    • 5221
    • 5222
    • 5223
    • 5224
    • 5225
    • 5226
    • 5227
    • 5228
    • 5229
    • 5230
    • 5231
    • 5232
    • 5233
    • 5234
    • 5235
    • 5236
    • 5237
    • 5238
    • 5239
    • 5240
    • 5241
    • 5242
    • 5243
  • 相关阅读:
    WordPress页脚配置备案号
    【第8天】SQL进阶-更新记录(SQL 小虚竹)
    《golang设计模式》第二部分·结构型模式-06-享元模式(Flyweight)
    学生台灯用led灯好还是荧光灯好?推荐几款高品质的LED灯
    ISP Pipeline
    【Linux笔记】Linux环境变量与地址空间
    hbuildx mac离线安装插件
    LC501. 二叉搜索树中的众数
    我的十年编程路 2017年篇
    短视频社交|电影点播平台Springboot+vue+ElementUI前后端分离
  • 原文地址:https://blog.csdn.net/qq_35606400/article/details/132643157