221 Commits

Author SHA1 Message Date
Vladyslav Vildanov ac3142abfe Added experimental support for HIMPORT bulk hash import feature (#1712)
* Added support for HIMPORT bulk hash import feature

* Fixed pre-server execution registry miutating, added pre-loaded registry feature

* Refactored retry logic to use existing configuration

* Marked feature as experimental

* Remvoed non-ASCII chars

* Ensure IteratorAggregator interface is enforced

* Fixed bug with updateCachableException adds duplicate entries

* Added explicit reconnect for Relay tests

* Testing with custom image

* Removed redundant comment

* Fixed exception handling

* Removed non-ASCII char

* Fixed merged conflict bugs
2026-08-10 10:54:34 +03:00
Vladyslav Vildanov 09b8ce59dd Fixed Sentinel does not wipe servers on exception caused (#1694) 2026-06-22 10:55:28 -07:00
Vladyslav Vildanov b2d1397fc6 Fixed SENTINEL SLAVES RESP3 incompatible response (#1676)
* Fixed SENTINEL SLAVES RESP3 incompatible response

* Updated CHANGELOG.md

* Revert relay-incompatible annotations
2026-05-14 09:56:32 +03:00
Vladyslav Vildanov ae4a706b01 Fixed Sentinel retry to narrow retryable exceptions to CommunicationException (#1665)
* Fixed Sentinel retry to narrow retryable exceptions to CommunicationException

* Update CHANGELOG.md
2026-04-20 10:10:15 +03:00
Kevin Rojas bb37322a24 Handle -READONLY as a redirection signal for Redis Cluster (AWS ElastiCache support) (#1656)
* feature: Added support for READONLY responses from AWS Elastic Cache

* chore: improve -READONLY handler comment and add changelog entry (#1656)

* tests: add unit test demonstrating ServerException behavior with READONLY error
2026-03-23 09:00:26 +02:00
Till Krüss 87390e7381 Use static closures (#1652) 2026-03-09 13:30:46 -07:00
Vasil Chomakov 7388d91153 Add upstream_driver option for CLIENT SETINFO upstream reporting (#1645)
* Add driver_info option for CLIENT SETINFO upstream reporting

* Use null default for upstreamDriver and ternary operator

* Remove redundant null initialization

* fix: remove trailing newline from VERSION file

* fix: update copyright year to 2026 in DriverInfo files

* refactor: rename driver_info to upstream_driver

* fix: code style issues

* docs: update CHANGELOG to reflect upstream_driver rename
2026-03-05 17:05:02 +02:00
Vladyslav Vildanov 274cb866bd Fixed Sentinel getParameters() executed on string configuration (#1649) 2026-02-26 11:01:54 -08:00
Till Krüss 581c5659bd update year in headers 2026-02-23 11:48:06 -08:00
Vladyslav Vildanov 6c9de258be Fixed getParameter() call on array + added integration testing with Sentinel (#1636)
* Fixed getParameter() call on array + added integration testing with Sentinel

* Added sentinel.conf

* Updated CHANGELOG.md

* Added handling of ParametersInterface
2026-02-13 11:30:43 +02:00
Vladyslav Vildanov 7c7cf90152 Improve connection handshake by pipelining commands (#1622)
* Improve connection handshake by pipelining commands

* Added exceptions handling for Redis < 6.0

* Updated CHANGELOG.md
2026-01-08 13:56:55 +02:00
Vladyslav Vildanov 980326d5d8 Added retry support (#1616)
* Initial work on retries

* Added retry class and test coverage

* Added support for standalone and cluster

* Make TimeoutException instance of CommunicationException

* Added pipeline, trasnaction, replication support

* Fixed broken test

* Marked test as relay-incompatible

* Marked test as relay-incompatible

* Fixed analysis errors, added missing tests

* Codestyle fixes

* Fixed test

* Update README.md

* Update README.md

* Update README.md

* Updated README.md

* Refactor retry on read and write

* Added check for timeout value

* Updated README.md

* Fixed README.md

* Codestyle changes

* Added missing coverage

* Added missing test coverage

* Removed comments

* Added retry support for Relay connection (#1620)

* Added integration test case with mocked retry

* Changed client initialisation in tests

* Marked test as relay-incompatible

---------

Co-authored-by: Pavlo Yatsukhnenko <yatsukhnenko@users.noreply.github.com>
2025-12-23 10:40:46 +02:00
Pavlo Yatsukhnenko 62f4ebcc37 Add AUTH command to Relay connection tests (#1601) 2025-10-20 10:34:31 -07:00
Viktor Szépe d9dfefd247 Fix typos (#1579) 2025-10-03 16:22:43 -07:00
ridgey-dev 8e7afbe679 Retry all exceptions from Sentinel replicas (#1577)
* Retry SentinelReplication::retryCommandOnFailure on all classes with Throwable interface

* Retry SentinelReplication::retryCommandOnFailure on all classes with Throwable interface

* Fix coding style
2025-07-18 09:21:40 +03:00
Vladyslav Vildanov c2b95dfd2a Backport #1551 (#1552)
* fix(conn): Removed automatic conn_uid assignment (#1551)

* fix(conn): Removed automatic conn_uid assignment

* Restrict redis version

* Updated CHANGELOG.md

* Added test case

* Update CHANGELOG.md

---------

Co-authored-by: Till Krüss <tillkruss@users.noreply.github.com>

* Removed duplicated disconnect

* Updated CHANGELOg.md

---------

Co-authored-by: Till Krüss <tillkruss@users.noreply.github.com>
2025-06-05 18:34:21 +03:00
Vladyslav Vildanov d7f60099a6 fix(stream): Fixed throwing CommunicationException when stream is EOF (#1548)
* fix(stream): Fixed return type to match function signature

* Updated CHANGELOG.md

* Fix syntax error

* Updated CHANGELOG.md entry
2025-05-30 10:26:17 +03:00
Mustafa AKBEL 6021daf9cd Treat LOADING Errors as Connection Failures to Retry with Next Replica (#1536)
* fix(sentinel-replication): Treat LOADING error responses as ConnectionException to allow retry mechanism to discard the current replica and switch to the next available one.

* fix(sentinel-replication): add changelog entries for LOADING response handling

* Update CHANGELOG.md

* Update CHANGELOG.md

---------

Co-authored-by: Mustafa AKBEL <mustafa.akbel@pusula.net.tr>
Co-authored-by: Till Krüss <tillkruss@users.noreply.github.com>
2025-05-28 15:11:13 +03:00
Vladyslav Vildanov 06c904af37 fix(auth): Adds default user if only password used for authentication (#1535) 2025-05-13 09:01:21 -07:00
vladvildanov ebcf7809ea Removed empty files 2025-04-01 10:56:51 +03:00
vladvildanov bf526cc129 Codestyle fixes 2025-03-31 12:14:37 +03:00
vladvildanov 8bc9a4d432 Merge branch 'v2.x' of github.com:predis/predis into vv-main-2.x-sync 2025-03-31 11:36:25 +03:00
Vladyslav Vildanov 86e6804c80 fix(stream): Removed resource disconnection on GC (#1519)
* fix(stream): Removed resource disconnection on GC

* Added disconnect for persistent conenctions tests
2025-03-07 10:30:42 +02:00
Vladyslav Vildanov 7b1558abfa Backport #1510, #1513 (#1514) 2025-02-25 09:13:40 -08:00
Vladyslav Vildanov 8b240d15a5 Backport #1512 (#1515)
* Backport #1512
* Removed outdated test
2025-02-25 09:12:10 -08:00
Vladyslav Vildanov 09e88b6fd0 fix: Bug with single persistent connection to the same resource (#1512)
* fix: Bug with single persistent connection to the same resource

* Fixed tests

* Additional test fix

* Codestyle fixes
2025-02-24 09:51:55 +02:00
Till Krüss ba66e22c92 bump year to 2025 2025-01-22 09:24:26 -08:00
vladvildanov 0c561b087d Codestyle fixes 2025-01-14 09:41:14 -08:00
vladvildanov e160b316dd Fixed Relay tests 2025-01-14 09:41:14 -08:00
Jiří Bok c83ffa43d8 Make Relay work with Redis cluster (#1397) 2025-01-14 09:41:14 -08:00
Till Krüss 7631d317fd update year 2024-11-21 11:37:10 -08:00
Vladyslav Vildanov c5fdfc81ef Added tests case with FLOAT16 and BFLOAT16 vectors (#1465)
* Added tests case with FLOAT16 and BFLOAT16 vectors

* Added version restriction for test

* Updated version restrictions
2024-06-28 11:18:07 -07:00
Christian Flothmann e83b393e09 explicitly mark nullable parameters as nullable (#1448)
* explicitly mark nullable parameters as nullable
* add job to run tests with PHP 8.4
2024-04-30 12:14:13 -07:00
Vladyslav Vildanov c83ee6a809 Implemented PSR-7 compatible stream abstraction (#1450)
* Implemented PSR-7 compatible stream abstraction

* Added missing coverage, fixing static analysis issues

* Fixed return type

* Added missing throws statements

* Added ignore lines
2024-04-10 12:52:53 +03:00
Vladyslav Vildanov 40d72d716d Improved pipeline abstractions (#1438)
* Added pipelining for on-connection commands

* Added server version condition for tests

* Fixed static analysis and codestyle errors

* Improved handshake session

* Updated HELLO retry logic

* Changed incorrect variable

* Added return statement

* Added more test coverage, codestyle fixes

* Improved pipelining abstractions

* Fixed unit tests

* Fixed typo

* Fixed another typo

* Fixed another typo

* Updated deserializeCommand signature

* Codestyle fixes

* Codestyle fixes

* Changed pipelined sequence

* Removed redundant method

* Fixed classname
2024-03-07 15:38:04 +02:00
Vladyslav Vildanov 8b464f2a60 Improved connection handshake session (#1431)
* Added pipelining for on-connection commands

* Added server version condition for tests

* Fixed static analysis and codestyle errors

* Improved handshake session

* Updated HELLO retry logic

* Changed incorrect variable

* Added return statement

* Added more test coverage, codestyle fixes
2024-03-04 09:18:46 +02:00
Vladyslav Vildanov 4b28ab1c74 Codestyle changes (#1437) 2024-02-23 10:18:22 +02:00
Vladyslav Vildanov 5f70cb1abc Removed NULL assignement for username parameter (#1429)
* Removed NULL assignement for username parameter

* Updated unit test

* More codestyle fixes

* Codestyle fixes
2024-01-15 11:57:18 +02:00
Vladyslav Vildanov d56e32715b Improved Relay integration (#1423)
* Fixed Relay objects structure (#1419)
* Added OSS cluster tests (#1421)

---------

Co-authored-by: Till Krüss <tillkruss@users.noreply.github.com>
2023-12-28 10:17:04 -08:00
Vladyslav Vildanov 662fdb99b3 Added support for redis gears trigger function commands (#1348)
* Added support for redis gears trigger function commands

* Exclude gears tests from relay connection tests

* Codestyle fixes

* Added missing test coverage

* Updated method description

* Use redis-stack:edge image istead of separate container

* Updated RESP3 modules responses

* Removed redundant constants

* Added additional timeout to make sure that index was created

* Marked test as relay-incompatible

* Mark tests as relay-incompatible

* Mark tests as relay-incompatible

* Increase timeout after index creation

* Added support for trigger functions command run against OSS cluster

* Mark gears cluster tests with appropriate annotation

* Marked with cluster annotation

* Codestyle fixes

* Removed refresh cluster on connection, moved to refresh manually in tests

* Removed redundant test

* Updated README, added comments with README references

* Revert "Marked test as relay-incompatible"

This reverts commit d888968b7b.

* Revert changes

* Revert "Mark tests as relay-incompatible"

This reverts commit 7d34370c6b.

* Revert "Updated RESP3 modules responses"

This reverts commit 5cf122ad71.

* Removed latest image

* Updated RESP3 modules responses (#4)

* Marked tests as relay-incompatible (#3)

* Marked test as relay-incompatible

* Mark tests as relay-incompatible

* Mark tests as relay-incompatible

* Changed tests group for RESP3 not supported tests

* Fixed broken tests

* Removed redundant test

* Marked test as relay-incompatible

* Codestyle fixes

* Updated CHANGELOG.md

* Updated CHANGELOG.md

* Revert php-cs-fixer style changes

---------

Co-authored-by: Chayim <chayim@users.noreply.github.com>
2023-11-01 18:09:09 +02:00
Jiří Bok 6372661dbf Make Relay work with Redis cluster (#1397) 2023-09-13 09:59:50 -07:00
Till Krüss cbf394b882 Disable CLIENT SETINFO calls by default (#1399)
Add `client_info` parameter
2023-09-13 09:35:49 -07:00
Vladyslav Vildanov 4172d2265f Client set name and version on connection (#1347)
* Added client metadata on server connection

* Added try...catch around server exception to supress CLIENT command errors

* Added exclusion for Relay connection
2023-08-03 09:04:04 +03:00
Vladyslav Vildanov af236dc50a Client set lib and version on connection (#1351)
* Added client metadata on server connection

* Added try...catch around server exception to supress CLIENT command errors

* Added exclusion for Relay connection

* Changed array index
2023-08-02 09:42:01 +03:00
Vladyslav Vildanov 021238f58b Added support for sharded pub/sub consumer (#1303)
* Added support for sharded pub/sub consumer

* Removed query parameter

* Fix typo

* Codestyle fixes

* Added support for sharded pub/sub against DispatcherLoop

* Updated sharded consumer example to subscribe on differend shard channels

* Added test coverage

* Removed cluster condition for pub/sub

* Codestyle fixes

* Changed socket read interface, added parameters as dependency to cluster connection

* Added for interface consistency

* Updated method description

* Updated method description

* Removed redundant exception

* Codestyle fix

* Updated README

* Mark tests as relay-incompatible

* Mark tests as relay-incompatible

* Mark tests as relay-incompatible

* Moved sharded pub/sub functionality to new consumer

* Codestyle fixes

* Resolve context depends on connection type

* Codestyle fixes
2023-07-19 16:28:14 +03:00
vladvildanov f239e989fe Resolve merge conflicts 2023-06-13 14:05:29 +03:00
Vladyslav Vildanov 9b7963be8a Add RESP3 response handle (#1298)
* Add RESP3 response handle

* Fix replication connection to return parameters of any connection role

* Removed expectations on unstable error messages

* Codestyle fixes
2023-05-18 11:04:32 +03:00
Till Krüss 6fbbb8973f Remove Webdis and phpiredis (#1291)
* remove webdis and phpiredis

* update changelog

* add pr number
2023-05-09 11:11:22 -07:00
Till Krüss 946c4b7bd7 [v2.x] Relay support (#1263) 2023-05-09 10:39:00 -07:00
Vladyslav Vildanov d18e20c98f Added RESP3 protocol option, establish RESP3 connection (#1267)
* Added RESP3 protocol option, establish RESP3 connection

* Removed method from the interface
2023-05-05 11:52:11 +03:00