diff options
-rw-r--r-- | PHPINFO | 4 | ||||
-rw-r--r-- | REFLECTION | 116 | ||||
-rw-r--r-- | php-pecl-redis6.spec | 49 | ||||
-rw-r--r-- | redis-upstream.patch | 116 |
4 files changed, 110 insertions, 175 deletions
@@ -2,7 +2,7 @@ redis Redis Support => enabled -Redis Version => 6.0.2 +Redis Version => 6.1.0 Redis Sentinel Version => 1.0 Available serializers => php, json, igbinary, msgpack Available compression => lzf, zstd, lz4 @@ -40,3 +40,5 @@ redis.session.lock_expire => 0 => 0 redis.session.lock_retries => 100 => 100 redis.session.lock_wait_time => 20000 => 20000 redis.session.early_refresh => 0 => 0 +redis.session.compression => none => none +redis.session.compression_level => 3 => 3 @@ -1,4 +1,4 @@ -Extension [ <persistent> extension #122 redis version 6.0.2 ] { +Extension [ <persistent> extension #116 redis version 6.1.0 ] { - Dependencies { Dependency [ igbinary (Required) ] @@ -104,12 +104,18 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { Entry [ redis.session.early_refresh <ALL> ] Current = '0' } + Entry [ redis.session.compression <ALL> ] + Current = 'none' + } + Entry [ redis.session.compression_level <ALL> ] + Current = '3' + } } - Classes [6] { Class [ <internal:redis> class Redis ] { - - Constants [49] { + - Constants [50] { Constant [ public int REDIS_NOT_FOUND ] { 0 } Constant [ public int REDIS_STRING ] { 1 } Constant [ public int REDIS_SET ] { 2 } @@ -137,6 +143,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { Constant [ public int COMPRESSION_LZF ] { 1 } Constant [ public int COMPRESSION_ZSTD ] { 2 } Constant [ public int COMPRESSION_ZSTD_DEFAULT ] { 3 } + Constant [ public int COMPRESSION_ZSTD_MIN ] { -131072 } Constant [ public int COMPRESSION_ZSTD_MAX ] { 22 } Constant [ public int COMPRESSION_LZ4 ] { 3 } Constant [ public int OPT_SCAN ] { 4 } @@ -170,7 +177,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Properties [0] { } - - Methods [254] { + - Methods [255] { Method [ <internal:redis, ctor> public method __construct ] { - Parameters [1] { @@ -280,6 +287,16 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Return [ Redis|bool ] } + Method [ <internal:redis> public method waitaof ] { + + - Parameters [3] { + Parameter #0 [ <required> int $numlocal ] + Parameter #1 [ <required> int $numreplicas ] + Parameter #2 [ <required> int $timeout ] + } + - Return [ Redis|array|false ] + } + Method [ <internal:redis> public method bitcount ] { - Parameters [4] { @@ -535,7 +552,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [1] { Parameter #0 [ <required> string $key ] } - - Return [ Redis|string ] + - Return [ Redis|string|false ] } Method [ <internal:redis> public method echo ] { @@ -1055,15 +1072,14 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { Parameter #0 [ <required> string $key ] Parameter #1 [ <optional> ?array $options = null ] } - - Return [ Redis|array|string ] + - Return [ Redis|array|string|false ] } Method [ <internal:redis> public method hSet ] { - - Parameters [3] { + - Parameters [2] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> string $member ] - Parameter #2 [ <required> mixed $value ] + Parameter #1 [ <optional> mixed ...$fields_and_vals ] } - Return [ Redis|int|false ] } @@ -1073,7 +1089,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [3] { Parameter #0 [ <required> string $key ] Parameter #1 [ <required> string $field ] - Parameter #2 [ <required> string $value ] + Parameter #2 [ <required> mixed $value ] } - Return [ Redis|bool ] } @@ -1099,7 +1115,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [4] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> ?int &$iterator ] + Parameter #1 [ <required> string|int|null &$iterator ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] } @@ -1312,7 +1328,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [1] { Parameter #0 [ <required> array $keys ] } - - Return [ Redis|array ] + - Return [ Redis|array|false ] } Method [ <internal:redis> public method migrate ] { @@ -1721,7 +1737,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { Parameter #0 [ <required> string $key ] Parameter #1 [ <optional> int $count = 0 ] } - - Return [ Redis|array|string|false ] + - Return [ mixed ] } Method [ <internal:redis> public method sUnion ] { @@ -1753,7 +1769,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { Method [ <internal:redis> public method scan ] { - Parameters [4] { - Parameter #0 [ <required> ?int &$iterator ] + Parameter #0 [ <required> string|int|null &$iterator ] Parameter #1 [ <optional> ?string $pattern = null ] Parameter #2 [ <optional> int $count = 0 ] Parameter #3 [ <optional> ?string $type = null ] @@ -1972,7 +1988,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [4] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> ?int &$iterator ] + Parameter #1 [ <required> string|int|null &$iterator ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] } @@ -2269,8 +2285,8 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [3] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> string $start ] - Parameter #2 [ <required> string $end ] + Parameter #1 [ <required> string|int $start ] + Parameter #2 [ <required> string|int $end ] } - Return [ Redis|int|false ] } @@ -2531,7 +2547,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [4] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> ?int &$iterator ] + Parameter #1 [ <required> string|int|null &$iterator ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] } @@ -2672,7 +2688,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [0] { } - - Return [ ?bool ] + - Return [ array|bool|null ] } Method [ <internal:redis> public method flushall ] { @@ -2701,7 +2717,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [4] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> ?int &$iterator ] + Parameter #1 [ <required> string|int|null &$iterator ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] } @@ -2765,7 +2781,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { Method [ <internal:redis> public method scan ] { - Parameters [4] { - Parameter #0 [ <required> ?int &$iterator ] + Parameter #0 [ <required> string|int|null &$iterator ] Parameter #1 [ <required> string $node ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] @@ -2794,7 +2810,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [4] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> ?int &$iterator ] + Parameter #1 [ <required> string|int|null &$iterator ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] } @@ -2821,7 +2837,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [4] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> ?int &$iterator ] + Parameter #1 [ <required> string|int|null &$iterator ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] } @@ -2849,7 +2865,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Properties [0] { } - - Methods [222] { + - Methods [224] { Method [ <internal:redis, ctor> public method __construct ] { - Parameters [7] { @@ -2960,6 +2976,17 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Return [ RedisCluster|bool ] } + Method [ <internal:redis> public method waitaof ] { + + - Parameters [4] { + Parameter #0 [ <required> array|string $key_or_address ] + Parameter #1 [ <required> int $numlocal ] + Parameter #2 [ <required> int $numreplicas ] + Parameter #3 [ <required> int $timeout ] + } + - Return [ RedisCluster|array|false ] + } + Method [ <internal:redis> public method bgsave ] { - Parameters [1] { @@ -3129,7 +3156,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [3] { Parameter #0 [ <required> array|string $key_or_address ] Parameter #1 [ <required> string $subcommand ] - Parameter #2 [ <optional> ?string $arg = NULL ] + Parameter #2 [ <optional> ?string $arg = null ] } - Return [ array|string|bool ] } @@ -3317,7 +3344,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [3] { Parameter #0 [ <required> string $key ] Parameter #1 [ <required> int $timeout ] - Parameter #2 [ <optional> ?string $mode = NULL ] + Parameter #2 [ <optional> ?string $mode = null ] } - Return [ RedisCluster|bool ] } @@ -3327,7 +3354,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [3] { Parameter #0 [ <required> string $key ] Parameter #1 [ <required> int $timestamp ] - Parameter #2 [ <optional> ?string $mode = NULL ] + Parameter #2 [ <optional> ?string $mode = null ] } - Return [ RedisCluster|bool ] } @@ -3492,6 +3519,15 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Return [ mixed ] } + Method [ <internal:redis> public method getex ] { + + - Parameters [2] { + Parameter #0 [ <required> string $key ] + Parameter #1 [ <optional> array $options = [] ] + } + - Return [ RedisCluster|string|false ] + } + Method [ <internal:redis> public method getbit ] { - Parameters [2] { @@ -3538,7 +3574,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [3] { Parameter #0 [ <required> string $key1 ] Parameter #1 [ <required> string $key2 ] - Parameter #2 [ <optional> ?array $options = NULL ] + Parameter #2 [ <optional> ?array $options = null ] } - Return [ RedisCluster|array|string|int|false ] } @@ -3660,7 +3696,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [4] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> ?int &$iterator ] + Parameter #1 [ <required> string|int|null &$iterator ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] } @@ -3934,7 +3970,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [3] { Parameter #0 [ <required> string $key ] Parameter #1 [ <required> int $timeout ] - Parameter #2 [ <optional> ?string $mode = NULL ] + Parameter #2 [ <optional> ?string $mode = null ] } - Return [ RedisCluster|bool ] } @@ -3944,7 +3980,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [3] { Parameter #0 [ <required> string $key ] Parameter #1 [ <required> int $timestamp ] - Parameter #2 [ <optional> ?string $mode = NULL ] + Parameter #2 [ <optional> ?string $mode = null ] } - Return [ RedisCluster|bool ] } @@ -3979,7 +4015,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [2] { Parameter #0 [ <required> array|string $key_or_address ] - Parameter #1 [ <optional> ?string $message = NULL ] + Parameter #1 [ <optional> ?string $message = null ] } - Return [ mixed ] } @@ -4017,7 +4053,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { Parameter #0 [ <required> string $channel ] Parameter #1 [ <required> string $message ] } - - Return [ RedisCluster|bool ] + - Return [ RedisCluster|int|bool ] } Method [ <internal:redis> public method pubsub ] { @@ -4080,7 +4116,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { Parameter #0 [ <required> string $key ] Parameter #1 [ <required> int $timeout ] Parameter #2 [ <required> string $value ] - Parameter #3 [ <optional> ?array $options = NULL ] + Parameter #3 [ <optional> ?array $options = null ] } - Return [ RedisCluster|bool ] } @@ -4159,7 +4195,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { Method [ <internal:redis> public method scan ] { - Parameters [4] { - Parameter #0 [ <required> ?int &$iterator ] + Parameter #0 [ <required> string|int|null &$iterator ] Parameter #1 [ <required> array|string $key_or_address ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] @@ -4338,7 +4374,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [2] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <optional> ?array $options = NULL ] + Parameter #1 [ <optional> ?array $options = null ] } - Return [ RedisCluster|array|string|int|bool ] } @@ -4347,7 +4383,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [2] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <optional> ?array $options = NULL ] + Parameter #1 [ <optional> ?array $options = null ] } - Return [ RedisCluster|array|string|int|bool ] } @@ -4384,7 +4420,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [4] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> ?int &$iterator ] + Parameter #1 [ <required> string|int|null &$iterator ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] } @@ -4879,7 +4915,7 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [4] { Parameter #0 [ <required> string $key ] - Parameter #1 [ <required> ?int &$iterator ] + Parameter #1 [ <required> string|int|null &$iterator ] Parameter #2 [ <optional> ?string $pattern = null ] Parameter #3 [ <optional> int $count = 0 ] } @@ -4910,8 +4946,8 @@ Extension [ <persistent> extension #122 redis version 6.0.2 ] { - Parameters [4] { Parameter #0 [ <required> string $dst ] Parameter #1 [ <required> array $keys ] - Parameter #2 [ <optional> ?array $weights = NULL ] - Parameter #3 [ <optional> ?string $aggregate = NULL ] + Parameter #2 [ <optional> ?array $weights = null ] + Parameter #3 [ <optional> ?string $aggregate = null ] } - Return [ RedisCluster|int|false ] } diff --git a/php-pecl-redis6.spec b/php-pecl-redis6.spec index db32f4a..fa2ddf0 100644 --- a/php-pecl-redis6.spec +++ b/php-pecl-redis6.spec @@ -16,7 +16,7 @@ %endif %bcond_without igbinary %bcond_without msgpack -%if 0%{?fedora} >= 41 +%if 0%{?fedora} >= 41 || 0%{?rhel} >= 10 %bcond_without valkey %else # Use valkey instead of redis for tests @@ -30,24 +30,22 @@ # after 20-json, 40-igbinary and 40-msgpack %global ini_name 50-%{pecl_name}.ini -%global upstream_version 6.0.2 +%global upstream_version 6.1.0 #global upstream_prever RC2 %global sources %{pecl_name}-%{upstream_version}%{?upstream_prever} %global _configure ../%{sources}/configure -Summary: Extension for communicating with the Redis key-value store +Summary: PHP extension for interfacing with key-value stores Name: %{?scl_prefix}php-pecl-redis6 Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} -Release: 2%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Release: 1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} License: PHP-3.01 URL: https://pecl.php.net/package/redis Source0: https://pecl.php.net/get/%{sources}.tgz -Patch0: %{pecl_name}-upstream.patch - BuildRequires: make BuildRequires: %{?dtsprefix}gcc -BuildRequires: %{?scl_prefix}php-devel >= 7.2 +BuildRequires: %{?scl_prefix}php-devel >= 7.4 BuildRequires: %{?scl_prefix}php-pear BuildRequires: %{?scl_prefix}php-json %if %{with igbinary} @@ -107,12 +105,12 @@ Conflicts: %{?scl_prefix}php-pecl-%{pecl_name}5 < 6 %description -The phpredis extension provides an API for communicating -with the Redis key-value store. +This extension provides an API for communicating with RESP-based key-value +stores, such as Redis, Valkey, and KeyDB. -This Redis client implements most of the latest Redis API. -As method only only works when also implemented on the server side, -some doesn't work with an old redis server version. +This client implements most of the latest API. +As method only works when also implemented on the server side, +some doesn't work with an old server version. Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. @@ -127,8 +125,6 @@ sed -e 's/role="test"/role="src"/' \ -i package.xml cd %{sources} -%patch -P0 -p1 - # Use system library rm -r liblzf @@ -193,6 +189,8 @@ extension = %{pecl_name}.so ;redis.session.lock_retries = 100 ;redis.session.lock_wait_time = 20000 ;redis.session.early_refresh = 0 +;redis.session.compression = none +;redis.session.compression_level = 3 EOF @@ -220,15 +218,16 @@ peclconf() { cd %{sources} %{__phpize} +sed -e 's/INSTALL_ROOT/DESTDIR/' -i build/Makefile.global cd ../NTS peclconf %{__phpconfig} -make %{?_smp_mflags} +%make_build %if %{with_zts} cd ../ZTS peclconf %{__ztsphpconfig} -make %{?_smp_mflags} +%make_build %endif @@ -236,12 +235,12 @@ make %{?_smp_mflags} %{?dtsenable} # Install the NTS stuff -make -C NTS install INSTALL_ROOT=%{buildroot} +%make_install -C NTS install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} %if %{with_zts} # Install the ZTS stuff -make -C ZTS install INSTALL_ROOT=%{buildroot} +%make_install -C ZTS install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif @@ -338,6 +337,20 @@ exit $ret %changelog +* Sat Oct 5 2024 Remi Collet <remi@remirepo.net> - 6.1.0-1 +- update to 6.1.0 + +* Tue Sep 24 2024 Remi Collet <remi@remirepo.net> - 6.1.0~RC2-1 +- update to 6.1.0RC2 + +* Mon Sep 23 2024 Remi Collet <remi@remirepo.net> - 6.1.0~RC2-0 +- test build for upcoming 6.1.0RC2 + +* Mon Aug 5 2024 Remi Collet <remi@remirepo.net> - 6.1.0~RC1-1 +- update to 6.1.0RC1 +- open https://github.com/phpredis/phpredis/pull/2532 missing file +- drop support for PHP < 7.4 + * Thu Jul 11 2024 Remi Collet <remi@remirepo.net> - 6.0.2-2 - add upstream patch for PHP 8.4 - allow to build with valkey diff --git a/redis-upstream.patch b/redis-upstream.patch deleted file mode 100644 index 03bd34f..0000000 --- a/redis-upstream.patch +++ /dev/null @@ -1,116 +0,0 @@ -From a51215ce2b22bcd1f506780c35b6833471e0b8cb Mon Sep 17 00:00:00 2001 -From: michael-grunder <michael.grunder@gmail.com> -Date: Mon, 18 Mar 2024 14:42:35 -0700 -Subject: [PATCH] Update random includes. - -PHP 8.4 has some breaking changes with respect to where PHP's random methods and -helpers are. This commit fixes those issues while staying backward compatible. - -Fixes #2463 ---- - backoff.c | 12 ++++++------ - library.c | 7 ++++++- - redis.c | 6 +++++- - 3 files changed, 17 insertions(+), 8 deletions(-) - -diff --git a/backoff.c b/backoff.c -index d0961fcfaf..1be04a8fe8 100644 ---- a/backoff.c -+++ b/backoff.c -@@ -1,14 +1,14 @@ - #include "common.h" - -+#if PHP_VERSION_ID < 80400 - #include <ext/standard/php_rand.h> -- --#if PHP_VERSION_ID >= 70100 --#include <ext/standard/php_mt_rand.h> - #else -+#include <ext/random/php_random.h> -+#endif -+ -+#if PHP_VERSION_ID < 70100 - static zend_long php_mt_rand_range(zend_long min, zend_long max) { -- zend_long number = php_rand(); -- RAND_RANGE(number, min, max, PHP_RAND_MAX); -- return number; -+ return min + php_rand() % (max - min + 1) - } - #endif - -diff --git a/library.c b/library.c -index 3d65c8529d..f81556a9ed 100644 ---- a/library.c -+++ b/library.c -@@ -56,9 +56,14 @@ - #include <ext/json/php_json.h> - #endif - --#include <ext/standard/php_rand.h> - #include <ext/hash/php_hash.h> - -+#if PHP_VERSION_ID < 80400 -+#include <ext/standard/php_rand.h> -+#else -+#include <ext/random/php_random.h> -+#endif -+ - #define UNSERIALIZE_NONE 0 - #define UNSERIALIZE_KEYS 1 - #define UNSERIALIZE_VALS 2 -diff --git a/redis.c b/redis.c -index ec6f65d2ed..2330bf7edf 100644 ---- a/redis.c -+++ b/redis.c -@@ -27,12 +27,16 @@ - #include "redis_cluster.h" - #include "redis_commands.h" - #include "redis_sentinel.h" --#include <standard/php_random.h> - #include <ext/spl/spl_exceptions.h> - #include <zend_exceptions.h> - #include <ext/standard/info.h> - #include <ext/hash/php_hash.h> - -+#if PHP_VERSION_ID < 80400 -+#include <ext/standard/php_random.h> -+#else -+#include <ext/random/php_random.h> -+#endif - - #ifdef PHP_SESSION - #include <ext/session/php_session.h> -From c139de3abac1dd33b97ef0de5af41b6e3a78f7ab Mon Sep 17 00:00:00 2001 -From: michael-grunder <michael.grunder@gmail.com> -Date: Sat, 1 Jun 2024 13:09:30 -0700 -Subject: [PATCH] We don't need to use a ranom value for our ECHO liveness - challenge. - -A microsecond resolution timestamp combined with a monotonically -incremented counter should be sufficient. - -This also fixes PHP 8.4 compilation as PHP 8.4 doesn't seem to have -`php_rand()`. ---- - library.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/library.c b/library.c -index ce0cbda26..42a132c4c 100644 ---- a/library.c -+++ b/library.c -@@ -2886,11 +2886,13 @@ redis_sock_create(char *host, int host_len, int port, - } - - static int redis_uniqid(char *buf, size_t buflen) { -+ static unsigned long counter = 0; - struct timeval tv; -+ - gettimeofday(&tv, NULL); - - return snprintf(buf, buflen, "phpredis:%08lx%05lx:%08lx", -- (long)tv.tv_sec, (long)tv.tv_usec, (long)php_rand()); -+ (long)tv.tv_sec, (long)tv.tv_usec, counter++); - } - - static int redis_stream_liveness_check(php_stream *stream) { |