PackageTrack
Sign in Get early access

clue/redis-react

Async Redis client implementation, built on top of ReactPHP.

v2.8.0 21M downloads/mo #398 most downloaded on Packagist clue/reactphp-redis

What this package is like to depend on

Last release 2 years ago

no release in 18 months

Ships fairly regularly

a new release about every 12 months

Nearly every release is documented

notes for 17 of 17 stable releases

Nothing withdrawn

no release was ever pulled

12 years old

17 releases · first in 2014

0 releases in the last 12 months

see the full history below

Release timeline

17 releases · May 2014 to Jan 2025
2015 2017 2019 2021 2023 2025
Release Pre-release

Releases

latest 17
  1. v2.8.0 03 Jan 2025
    Release notes

    This is a compatibility release that contains backported features from the 3.x branch.
    Once v3 is released, it will be the way forward for this project.

    • Feature: Improve PHP 8.4+ support by avoiding implicitly nullable types.
      (#165 and #170 by @clue)
    Open source →
  2. v2.7.0 05 Jan 2024
    Release notes

    This is a compatibility release that contains backported features from the 3.x branch.
    Once v3 is released, it will be the way forward for this project.

    • Feature: Forward compatibility with Promise v3.
      (#152 by @clue)

    • Feature: Full PHP 8.3 compatibility and update test suite.
      (#151 by @clue)

    Open source →
  3. v2.6.0 09 May 2022
    Release notes
    Open source →
    Release notes
    • Feature: Support PHP 8.1 release. (#119 by @clue)

    • Improve documentation and CI configuration. (#123 and #125 by @SimonFrings)

    Open source →
  4. v2.5.0 31 Aug 2021
    Release notes
    • Feature: Simplify usage by supporting new default loop and new Socket API.
      (#114 and #115 by @SimonFrings)

      // old (still supported)
      $factory = new Clue\React\Redis\Factory($loop);
      
      // new (using default loop)
      $factory = new Clue\React\Redis\Factory();
    • Feature: Improve error reporting, include Redis URI and socket error codes in all connection errors.
      (#116 by @clue)

    • Documentation improvements and updated examples.
      (#117 by @clue, #112 by @Nyholm and #113 by @PaulRotmann)

    • Improve test suite and use GitHub actions for continuous integration (CI).
      (#111 by @SimonFrings)

    Open source →
    Release notes
    • Feature: Simplify usage by supporting new default loop and new Socket API. (#114 and #115 by @SimonFrings)

      // old (still supported)
      $factory = new Clue\React\Redis\Factory($loop);
      
      // new (using default loop)
      $factory = new Clue\React\Redis\Factory();
      
    • Feature: Improve error reporting, include Redis URI and socket error codes in all connection errors. (#116 by @clue)

    • Documentation improvements and updated examples. (#117 by @clue, #112 by @Nyholm and #113 by @PaulRotmann)

    • Improve test suite and use GitHub actions for continuous integration (CI). (#111 by @SimonFrings)

    Open source →
  5. v2.4.0 25 Sep 2020
    Release notes
    • Fix: Fix dangling timer when lazy connection closes with pending commands.
      (#105 by @clue)

    • Improve test suite and add .gitattributes to exclude dev files from exports.
      Prepare PHP 8 support, update to PHPUnit 9 and simplify test matrix.
      (#96 and #97 by @clue and #99, #101 and #104 by @SimonFrings)

    Open source →
    Release notes
    • Fix: Fix dangling timer when lazy connection closes with pending commands. (#105 by @clue)

    • Improve test suite and add .gitattributes to exclude dev files from exports. Prepare PHP 8 support, update to PHPUnit 9 and simplify test matrix. (#96 and #97 by @clue and #99, #101 and #104 by @SimonFrings)

    Open source →
  6. v2.3.0 11 Mar 2019
    Release notes
    • Feature: Add new createLazyClient() method to connect only on demand and
      implement "idle" timeout to close underlying connection when unused.
      (#87 and #88 by @clue and #82 by @WyriHaximus)

      $client = $factory->createLazyClient('redis://localhost:6379');
      
      $client->incr('hello');
      $client->end();
    • Feature: Support cancellation of pending connection attempts.
      (#85 by @clue)

      $promise = $factory->createClient($redisUri);
      
      $loop->addTimer(3.0, function () use ($promise) {
          $promise->cancel();
      });
    • Feature: Support connection timeouts.
      (#86 by @clue)

      $factory->createClient('localhost?timeout=0.5');
    • Feature: Improve Exception messages for connection issues.
      (#89 by @clue)

      $factory->createClient('redis://localhost:6379')->then(
          function (Client $client) {
              // client connected (and authenticated)
          },
          function (Exception $e) {
              // an error occurred while trying to connect (or authenticate) client
              echo $e->getMessage() . PHP_EOL;
              if ($e->getPrevious()) {
                  echo $e->getPrevious()->getMessage() . PHP_EOL;
              }
          }
      );
    • Improve test suite structure and add forward compatibility with PHPUnit 7 and PHPUnit 6
      and test against PHP 7.1, 7.2, and 7.3 on TravisCI.
      (#83 by @WyriHaximus and #84 by @clue)

    • Improve documentation and update project homepage.
      (#81 and #90 by @clue)

    Open source →
    Release notes
    • Feature: Add new createLazyClient() method to connect only on demand and implement "idle" timeout to close underlying connection when unused. (#87 and #88 by @clue and #82 by @WyriHaximus)

      $client = $factory->createLazyClient('redis://localhost:6379');
      
      $client->incr('hello');
      $client->end();
      
    • Feature: Support cancellation of pending connection attempts. (#85 by @clue)

      $promise = $factory->createClient($redisUri);
      
      $loop->addTimer(3.0, function () use ($promise) {
          $promise->cancel();
      });
      
    • Feature: Support connection timeouts. (#86 by @clue)

      $factory->createClient('localhost?timeout=0.5');
      
    • Feature: Improve Exception messages for connection issues. (#89 by @clue)

      $factory->createClient('redis://localhost:6379')->then(
          function (Client $client) {
              // client connected (and authenticated)
          },
          function (Exception $e) {
              // an error occurred while trying to connect (or authenticate) client
              echo $e->getMessage() . PHP_EOL;
              if ($e->getPrevious()) {
                  echo $e->getPrevious()->getMessage() . PHP_EOL;
              }
          }
      );
      
    • Improve test suite structure and add forward compatibility with PHPUnit 7 and PHPUnit 6 and test against PHP 7.1, 7.2, and 7.3 on TravisCI. (#83 by @WyriHaximus and #84 by @clue)

    • Improve documentation and update project homepage. (#81 and #90 by @clue)

    Open source →
  7. v2.2.0 24 Jan 2018
    Release notes
    • Feature: Support communication over Unix domain sockets (UDS)
      (#70 by @clue)

      // new: now supports redis over Unix domain sockets (UDS)
      $factory->createClient('redis+unix:///tmp/redis.sock');
    Open source →
    Release notes
    • Feature: Support communication over Unix domain sockets (UDS) (#70 by @clue)

      // new: now supports redis over Unix domain sockets (UDS)
      $factory->createClient('redis+unix:///tmp/redis.sock');
      
    Open source →
  8. v2.1.0 25 Sep 2017
    Release notes
    • Feature: Update Socket dependency to support hosts file on all platforms
      (#66 by @clue)

      This means that connecting to hosts such as localhost (and for example
      those used for Docker containers) will now work as expected across all
      platforms with no changes required:

      $factory->createClient('localhost');
    Open source →
    Release notes
    • Feature: Update Socket dependency to support hosts file on all platforms (#66 by @clue)

      This means that connecting to hosts such as localhost (and for example those used for Docker containers) will now work as expected across all platforms with no changes required:

      $factory->createClient('localhost');
      
    Open source →
  9. v2.0.0 20 Sep 2017
    Release notes

    A major compatibility release to update this package to support all latest
    ReactPHP components!

    This update involves a minor BC break due to dropped support for legacy
    versions. We've tried hard to avoid BC breaks where possible and minimize impact
    otherwise. We expect that most consumers of this package will actually not be
    affected by any BC breaks, see below for more details.

    • BC break: Remove all deprecated APIs, default to redis:// URI scheme
      and drop legacy SocketClient in favor of new Socket component.
      (#61 by @clue)

      All of this affects the Factory only, which is mostly considered
      "advanced usage". If you're affected by this BC break, then it's
      recommended to first update to the intermediary v1.2.0 release, which
      allows you to use the redis:// URI scheme and a standard
      ConnectorInterface and then update to this version without causing a
      BC break.

    • BC break: Remove uneeded data event and support for advanced MONITOR
      command for performance and consistency reasons and
      remove underdocumented isBusy() method.
      (#62, #63 and #64 by @clue)

    • Feature: Forward compatibility with upcoming Socket v1.0 and v0.8 and EventLoop v1.0 and Evenement v3
      (#65 by @clue)

    Open source →
    Release notes

    A major compatibility release to update this package to support all latest ReactPHP components!

    This update involves a minor BC break due to dropped support for legacy versions. We've tried hard to avoid BC breaks where possible and minimize impact otherwise. We expect that most consumers of this package will actually not be affected by any BC breaks, see below for more details.

    • BC break: Remove all deprecated APIs, default to redis:// URI scheme and drop legacy SocketClient in favor of new Socket component. (#61 by @clue)

      All of this affects the Factory only, which is mostly considered "advanced usage". If you're affected by this BC break, then it's recommended to first update to the intermediary v1.2.0 release, which allows you to use the redis:// URI scheme and a standard ConnectorInterface and then update to this version without causing a BC break.

    • BC break: Remove unneeded data event and support for advanced MONITOR command for performance and consistency reasons and remove underdocumented isBusy() method. (#62, #63 and #64 by @clue)

    • Feature: Forward compatibility with upcoming Socket v1.0 and v0.8 and EventLoop v1.0 and Evenement v3 (#65 by @clue)

    Open source →
  10. v1.2.0 19 Sep 2017
    Release notes
    • Feature: Support redis[s]:// URI scheme and deprecate legacy URIs
      (#60 by @clue)

      $factory->createClient('redis://:secret@localhost:6379/4');
      $factory->createClient('redis://localhost:6379?password=secret&db=4');
    • Feature: Factory accepts Connector from Socket and deprecate legacy SocketClient
      (#59 by @clue)

      If you need custom connector settings (DNS resolution, TLS parameters, timeouts,
      proxy servers etc.), you can explicitly pass a custom instance of the
      ConnectorInterface:

      $connector = new \React\Socket\Connector($loop, array(
          'dns' => '127.0.0.1',
          'tcp' => array(
              'bindto' => '192.168.10.1:0'
          ),
          'tls' => array(
              'verify_peer' => false,
              'verify_peer_name' => false
          )
      ));
      
      $factory = new Factory($loop, $connector);
    Open source →
    Release notes
    • Feature: Support redis[s]:// URI scheme and deprecate legacy URIs (#60 by @clue)

      $factory->createClient('redis://:secret@localhost:6379/4');
      $factory->createClient('redis://localhost:6379?password=secret&db=4');
      
    • Feature: Factory accepts Connector from Socket and deprecate legacy SocketClient (#59 by @clue)

      If you need custom connector settings (DNS resolution, TLS parameters, timeouts, proxy servers etc.), you can explicitly pass a custom instance of the ConnectorInterface:

      $connector = new \React\Socket\Connector($loop, array(
          'dns' => '127.0.0.1',
          'tcp' => array(
              'bindto' => '192.168.10.1:0'
          ),
          'tls' => array(
              'verify_peer' => false,
              'verify_peer_name' => false
          )
      ));
      
      $factory = new Factory($loop, $connector);
      
    Open source →
  11. v1.1.0 18 Sep 2017
    Release notes
    • Feature: Update SocketClient dependency to latest version (#58 by @clue)

    • Improve test suite by adding PHPUnit to require-dev, fix HHVM build for now again and ignore future HHVM build errors, lock Travis distro so new defaults will not break the build and skip functional integration tests by default (#52, #53, #56 and #57 by @clue)

    Open source →
  12. v1.0.0 20 May 2016
    Release notes
    • First stable release, now following SemVer

    • BC break: Consistent public API, mark internal APIs as such (#38 by @clue)

      // old
      $client->on('data', function (MessageInterface $message, Client $client) {
          // process an incoming message (raw message object)
      });
      
      // new
      $client->on('data', function (MessageInterface $message) use ($client) {
          // process an incoming message (raw message object)
      });
      

    Contains no other changes, so it's actually fully compatible with the v0.5.2 release.

    Open source →
  13. v0.5.2 20 May 2016
    Release notes
    • Fix: Do not send empty SELECT statement when no database has been given (#35, #36 by @clue)

    • Improve documentation, update dependencies and add first class support for PHP 7

    Open source →
  14. v0.5.1 12 Jan 2015
    Release notes
    • Fix: Fix compatibility with react/promise v2.0 for monitor and PubSub commands. (#28)
    Open source →
  15. v0.5.0 12 Nov 2014
    Release notes
    • Feature: Support PubSub commands (P)(UN)SUBSCRIBE and watching for "message", "subscribe" and "unsubscribe" events (#24)

    • Feature: Support MONITOR command and watching for "monitor" events (#23)

    • Improve documentation, update locked dependencies and add first class support for HHVM (#25, #26 and others)

    Open source →
  16. v0.4.0 25 Aug 2014
    Release notes
    • BC break: The Client class has been renamed to StreamingClient. Added new Client interface. (#18 and #19)

    • BC break: Rename message event to data. (#21)

    • BC break: The Factory now accepts a LoopInterface as first argument. (#22)

    • Fix: The close event will be emitted once when invoking the Client::close() method or when the underlying stream closes. (#20)

    • Refactored code, improved testability, extended test suite and better code coverage. (#11, #18 and #20)

    Note: This is an intermediary release to ease upgrading to the imminent v0.5 release.

    Open source →
  17. v0.3.0 31 May 2014
    Release notes
    • First tagged release

    Note: Starts at v0.3 because previous versions were not tagged. Leaving some room in case they're going to be needed in the future.

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive