Skip to content

Releases: cachewerk/relay

v0.8.1

13 Jul 00:16
7f5e618
Compare
Choose a tag to compare

Added

  • Added experimental support JSON commands

Changed

  • Only enable CLIENT TRACKING on links that can secure an in-memory cache
  • Attach to in-memory caches actively not lazily
  • Improved error messages for invalid session.save_path URIs
  • Various performance, allocator and internal improvements

Fixed

  • Fixed a memory leak in the session handler
  • Improved authentication parsing in the session handler
  • Fixed Relay\Cluster command compatibility with PhpRedis
  • Don't deserialize KEYS replies
  • Various improvements for the SUBSCRIBE command-family
  • Fixed stats() array index not matching database number

v0.8.0

22 May 17:03
e53bfd7
Compare
Choose a tag to compare

Added

  • Added various missing methods to Relay\Cluster
  • Support cloning Relay objects
  • Added crash logging
  • Support logging to stderr
  • Added support for session.save_handler directive
  • Added support for relay.session.compression* directives
  • Added dedicated event classes Relay\Event\Flushed and Relay\Event\Invalidated
  • Added PHP 8.4 compatibility and builds

Changed

  • Switched to concurrencykit v0.7.2
  • Various performance, allocator and internal improvements

Fixed

  • Fixed a rare bug that could result in stale keys
  • Fixed a rare bug when flushing the data when OOM

Removed

  • Dropped Debian zts builds
  • Droped macOS x86 and PHP 7.4 builds

v0.7.0

02 Jan 20:47
4d18720
Compare
Choose a tag to compare

Added

  • Added experimental Relay\Cluster class
  • Added support for LCS command

Changed

  • ⚠️ Matched PhpRedis 6.x flushdb() and flushall() breaking changes
  • ⚠️ Refactored experimental Relay\Table class
  • Various minor internal performance and compliance improvements

Fixed

  • Fixed INCRBY/DECRBY parameter parsing
  • Fixed a crash when recursively subscribing and executing commands
  • Improved error reporting when connecting to older Redis Servers

v0.6.8

06 Oct 16:21
479fa9b
Compare
Choose a tag to compare

Added

  • Added support for PUBSUB container command
  • Support options array in Relay\Relay and Relay\Sentinel constructor for PhpRedis v6.x compatibility

Changed

  • Switched to 8.3.0RC2 API for PHP 8.3 builds
  • Switched to Ventura (13.x) for macOS builds
  • Added more diagnostics to extension "info" output
  • Improved exception pinpointing
  • Various minor and major internal improvements
  • Reduce OOM warning frequency

Fixed

  • Fixed a memory leak involving [PS]SUBSCRIBE
  • Fixed a concurrency bug when writing to a pre-existing hash/set
  • Fixed crash when calling close() within a *subscribe() callback
  • Prevent allocation reduction when Relay was idle for many hours

v0.6.7

05 Sep 01:02
bf1cf9b
Compare
Choose a tag to compare

Added

  • Added experimental Relay\Table class
  • Added support for BITFIELD
  • Allow RELAY_KEY to be set from environment variable

Changed

  • Switched to 8.3beta1 API for PHP 8.3 builds
  • Bumped required hiredis version to 1.1.0 (1.2.0 on macOS)
  • Use GCC 9 for Ubuntu 16.04 builds
  • Refactored logging component
  • Various minior internal improvements

v0.6.6

19 Jul 19:51
4525414
Compare
Choose a tag to compare

Changed

  • Switched to OpenSSL 3.0 for macOS binaries

Fixed

  • Mitigate EINTR in hiredis poll(2)
  • Fixed support for ancient HELLO responses
  • Fixed releasing an attached database when freeing a persistent link
  • Fixed how we track active requests in the context of pcntl_fork()
  • Improved heartbeat parsing on older PHP versions

Deprecated

  • Deprecated stats.command_usec key for performance reasons

v0.6.5

07 Jun 03:11
2b9780e
Compare
Choose a tag to compare

Added

  • Added support for additional Relay::__construct() context parameters

Changed

  • Various minor internal improvements

Fixed

  • Improved license verification and debugging

v0.6.4

09 May 15:26
c9ddbcb
Compare
Choose a tag to compare

Added

  • Added support for [UN]SUBSCRIBE, P[UN]SUBSCRIBE and S[UN]SSUBSCRIBE
  • Added support for SPUBLISH

Changed

  • Send CLIENT SETINFO when establishing a connection
  • Allow pack() and unpack() calls without a connection
  • Various minor internal improvements

Fixed

  • Fixed issues with OPT_MAX_RETRIES and OPT_READ_TIMEOUT
  • Automatically send DISCARD when stashing a non-atomic connection

v0.6.3

11 Apr 00:52
f411182
Compare
Choose a tag to compare

Added

  • Added several timing metrics to stats()

Changed

  • Improved key pattern matching speed
  • Switched to mutex for faster locking

v0.6.2

30 Mar 02:58
bd64b44
Compare
Choose a tag to compare

Added

  • Added EL9, Alpine 3.17 and some PHP 8.3 builds
  • Added SCHEDULE option to BGSAVE
  • Added WITHSCORE option to Z[REV]RANK

Changed

  • Renamed Alpine Linux builds from relay-alpine to relay-alpine3.9
  • Protect against issuing unsupported commands (e.g. MONITOR)
  • Reworked invalidation callbacks
  • Toggle OPT_THROW_ON_ERROR when toggling OPT_PHPREDIS_COMPATIBILITY option
  • Bumped default relay.max_endpoint_dbs to 32
  • Improved flushMemory() parameter naming
  • Upgraded bundled relay-pkg.so hiredis version to v1.1.0
  • Return Relay\Exception in transactions when OPT_THROW_ON_ERROR is enabled
  • Reworked WRONGTYPE handling for cached keys
  • Several minor improvements and housekeeping
  • Normalize how RESP3 null type _ is treated

Fixed

  • Fixed arity discrepancies between Relay and PhpRedis
  • Fixed several issues when calling rawCommand() with some commands
  • Fixed setting OPT_USE_CACHE via setOption() method
  • Fixed GEODIST return type

Removed

  • Removed OPT_STRING_TYPE_RETURN option
  • Removed license sub-array stats()