Commit Graph

2594 Commits

Author SHA1 Message Date
Jozsef Koszo
1af521ac65 Fix random connection timeouts with Redis Cluster
When a node timeout occurs, then phpredis will try to connect to another
node, whose answer probably will be MOVED redirect. After this we need
more time to accomplish the redirection, otherwise we get "Timed out
attempting to find data in the correct node" error message.

Fixes #795 #888 #1142 #1385 #1633 #1707 #1811 #2407
2024-08-29 10:06:54 -07:00
Pavlo Yatsukhnenko
98d64ba86f 5.3.7 5.3.7 2022-02-15 20:28:34 +02:00
Pavlo Yatsukhnenko
8072413b2c 5.3.7-rc2 5.3.7RC2 2022-02-12 14:54:48 +02:00
Pavlo Yatsukhnenko
85c69c2ef4 5.3.7-rc1 5.3.7RC1 2022-02-02 08:38:34 +02:00
Michael Grunder
d938a42621 Fix LZF decompression logic. (#2065)
* Fix LZF decompression logic.

Rework how we decompress LZF data.  Previously it was possible to
encounter a double-free, if the error was not E2BIG.

* .
2022-02-01 20:05:36 +02:00
Pavlo Yatsukhnenko
e849b537d6 Add scan function to RedisArray 2022-02-01 18:00:56 +02:00
michael-grunder
21a75fe274 A small test for key scanning in RedisArray
See: #2055
2022-02-01 18:00:56 +02:00
Pavlo Yatsukhnenko
35a2a8e64f Add hscan, sscan and zscan functions to RedisArray 2022-02-01 17:51:11 +02:00
michael-grunder
5725c8a15b Update date for 2022-01-17 release 5.3.6 2022-01-17 10:12:36 -08:00
michael-grunder
5df8c2719c Prepare for 5.3.6 GA 2022-01-11 12:22:38 -08:00
Pavlo Yatsukhnenko
d2f2a7d95e Duplicate zval before add_next_index_zval 2022-01-11 11:27:35 -08:00
michael-grunder
2a130215d6 Prepare for 5.3.5 GA release. 5.3.5 2021-12-18 12:05:48 -08:00
michael-grunder
44affad249 Fix typo/bug in cluster_scan_resp 2021-12-18 11:12:04 -08:00
Michael Grunder
b9e27e27f1 Relax TTL test and run a smaller cluster in GitHub Actions (#2040)
* Fix expire check in testttl

The previous logic was timing related and also kind of testing Redis'
expiration logic itself.

* Use a smaller cluster in GitHub CI
2021-12-07 14:19:43 -08:00
Michael Grunder
1666a071b1 Fix expire check in testttl (#2039)
The previous logic was timing related and also kind of testing Redis'
expiration logic itself.
2021-12-07 14:19:33 -08:00
michael-grunder
e05b152489 Update package.xml for 5.3.5 2021-12-07 10:42:14 -08:00
michael-grunder
5dd8977e0c Prepare for 5.3.5 GA 2021-12-07 10:35:26 -08:00
michael-grunder
eeafeab2dd Remove diacritics so pecl can render the release notes. 2021-11-16 16:57:11 -08:00
michael-grunder
f5476bf709 Update date in Changelog 5.3.5RC1 2021-11-16 12:26:15 -08:00
michael-grunder
32ef4f8a63 Update date in package.xml 2021-11-15 15:38:45 -08:00
michael-grunder
5efdddf09b Update changelog to include the fix for #2030 2021-11-15 12:47:19 -08:00
Pavlo Yatsukhnenko
692e4e8474 Issue #2030 2021-11-15 12:45:29 -08:00
michael-grunder
7d1f129240 Prepare Changelog.md and package.xml for 5.3.5RC1 2021-11-09 13:33:18 -08:00
Bar Shaul
b1a52688e1 Added support for remapping the cluster's keyspace on a failover 2021-11-09 13:26:08 -08:00
Michael Grunder
6be921004a Merge pull request #2016 from phpredis/release/pr/5.3.5-rc1
PhpRedis 5.3.5-rc1 PR
2021-10-18 14:40:54 -07:00
michael-grunder
ffcdbbf1e5 Rebase fixes 2021-10-06 12:56:42 -07:00
michael-grunder
d68579562b WIP: Experimental support to detect unconsumed data
This commit is an attempt at detecting unconsumed data on a socket when
we pull it from the connection pool.

Two new INI settings are introduced related to the changes:

redis.pconnect.pool_detect_dirty:

Value Explanation
----- ----------------------------------------------------------------
    0 Don't execute new logic at all.
    1 Abort and close the socket if we find unconsumed bytes in the
      read buffer.
    2 Seek to the end of our read buffer if we find unconsumed bytes
      and then poll the socket FD to detect if we're still readable
      in which case we fail and close the socket.

redis.pconnect.pool_poll_timeout:

The poll timeout to employ when checking if the socket is readable.
This value is in milliseconds and can be zero.

Review changes

See #2013

Perform cheaper PHP liveness check first.
2021-10-05 14:35:56 -07:00
neodisco
f841686576 Update INSTALL.markdown
Tested that php74 exists
2021-10-05 14:35:56 -07:00
wilsonwr
d017788e71 Update cluster.markdown
The "distribute" option for session.save_path is listed like "persistent," as if it is a boolean option. But this isn't the case. The code in redis_session.c#L893-L902 expects "distribute" to be a parameter to the "failover" option. The updated cluster.markdown reflects this.
2021-10-05 14:35:56 -07:00
Clément Tessier
20ac84710b Update cluster.markdown 2021-10-05 14:35:56 -07:00
Clément Tessier
0adf052602 Fix typo in RedisCluster documentation 2021-10-05 14:35:56 -07:00
wangqr
aee29bf731 Fix unbalanced parenthesis in README.markdown 2021-10-05 14:35:56 -07:00
T. Todua
09a095e720 Update INSTALL.markdown
As a quick-hint to simplify process for many newcomers.
2021-10-05 14:35:56 -07:00
Pavlo Yatsukhnenko
6008900c2e Use ZEND_HASH_FOREACH_STR_KEY_VAL when numeric index isn't used 2021-10-05 14:35:56 -07:00
Naphat Deepar
12ffbf33aa Update sentinel.markdown
add document about connect sentinel with authentication
2021-10-05 14:35:55 -07:00
Pavlo Yatsukhnenko
85dc883bab Fix RedisArray::__construct bug 2021-10-05 14:35:53 -07:00
Remi Collet
a26b14dbe3 use zend_parse_parameters_none 2021-10-05 14:34:58 -07:00
dengliming
ff331af989 Update README.markdown 2021-10-05 14:34:58 -07:00
Poplary
a6bdb8731b Fixed README, add the missing single quote mark. 2021-10-05 14:34:58 -07:00
Maxime CORNET
305c15840c Add json serializer in documentation 2021-10-05 14:34:58 -07:00
Michael Grunder
1aa10e93a2 Fix sAdd documentation (see #2002) 2021-10-05 14:34:58 -07:00
Nathaniel Braun
732eb8dcbe Add documentation for backoff algorithms 2021-10-05 14:34:58 -07:00
michael-grunder
d78b0c79da Clarify pickle is for PHP >= 7.3
See: #1991
2021-10-05 14:34:58 -07:00
michael-grunder
5bba6a7fcc Minor fix of full jitter backoff 2021-10-05 14:34:58 -07:00
T. Todua
c6d37c27cd Updated approach
Pickle is becoming standard after PHP 7.3, so you should include that too.
2021-10-05 14:34:58 -07:00
Nathaniel Braun
05129c3a3d Add support for exponential backoff on retry 2021-10-05 14:34:53 -07:00
Pavlo Yatsukhnenko
502d09fd53 Fix PHP 8.1 tests 2021-10-05 14:32:45 -07:00
Pavlo Yatsukhnenko
4d2afa7863 GitHub Actions 2021-10-05 14:32:40 -07:00
michael-grunder
da2790aec5 Separate compression and create utility methods
This commit splits compression and serialization into two distinct parts
and adds some utility functions so the user can compress/uncompress
or pack/unpack data explicily.

See #1939
2021-10-05 14:32:16 -07:00
michael-grunder
6a77ef5cde Small extra ZSTD validity check 2021-10-05 14:32:16 -07:00