Releases: cachewerk/relay
Releases · cachewerk/relay
v0.20.0
Added
- Added stable PHP 8.5 builds
- Added ZTS builds for some distros
- Added
WAITcommand toRelay\Cluster - Added
DIGESTcommand - Added
IFEQ,IFNE,IFDEQ,IFDNESEToptions - Added
DELEXcommand - Added
MSETEXcommand - Added support for Dragonfly's
ZDIFF WITHSCORESreply
Changed
⚠️ Return Redis map as numeric array for raw commands in PhpRedis compatibility mode⚠️ Establish connections lazily in PhpRedis compatibility mode- Restored PHP 7.4 builds for macOS
Fixed
- Fixed
hGetWithMeta()sometimes returning incorrect value - Fixed reply type for
VINFOcommand - Fixed a segfault caused by a null pointer dereference in
Cluster
v0.12.1
Added
- Added
hgetWithMeta()method
Changed
- Improved PhpRedis compatibility for
Relay\Cluster::config() - Deprecated
pclose()in favor ofclose() - Call
SELECT 0when stashing connections
Fixed
- Fixed handling arguments of
hsetex()method - Fixed arity for some vectorset commands
- Fixed wrong reply format of raw
GETEXcommand - Fixed
HEXISTSwhen we have limited cached information about a key - Fixed literal reply type for
SELECTandWATCHcommands
v0.12.0
Added
- Added
VADD,VREM,VCARD,VDIM,VINFOandVSIMcommands - Added
VRANGE,VLINKS,VEMB,VISMEMBERandVRANDMEMBERcommand - Added
VSETATTRandVGETATTRcommands - Added
XDELEXandXACKDELcommands - Added
DELIFEQcommand - Added
GEOSEARCH[STORE] BYPOLYGONcommand option - Added
vectorsettypo constant - Added
hgetex(),hsetex()andhgetdel()methods toRelay\Cluster
Changed
- Improved PhpRedis compatibility for HFE commands
- Enabled persistent connection for
Relay\Cluster - Reduced size of build artifacts
- Made heartbeats more resilient
- Minor performance improvements
Fixed
- Fixed up some stub issues
- Fixed a couple of potential crashes
v0.11.1
Added
- Added
statusproperty toRelay::$adaptiveCache - Added
adaptive_cacheendpoint information tostats() - Added
Cluster::lastMemoryFlush()method - Added
relay.adaptive_cache.min_(events|ratio)ini directives - Added
isTracked()method to check if a key is tracked in-memory
Changed
- Changed
minEventsto take a negative numbers - Improved PHP 8.5 compatibility
Fixed
- Fixed arity of
HGETDELcommand - Fixed a bug where the adaptive cache would clear on stashed connections
- Fixed a segfault caused by a null pointer dereference in
Cluster - Fixed a segfault caused by
uint32_tmultiplication overflow - Fixed handling
PERSISTargument ofHGETEXcommand - Fixed
getWithMeta()sometimes returning incorrect length
v0.11.0
This release introduces a new adaptive caching layer to only cache keys that have a minimum read-write ratio, to avoid cache thrashing for some applications.
Added
- Added adaptive caching layer
- Added Pub/Sub state restoration on reconnect
- Added cluster slot caching expiry mechanism
- Added Valkey AZ based replica selection
- Added Valkey
PRIMARYaliases for sentinel - Added Valkey
COMMANDLOGandCLIENT CAPA redirectcommand - Added Redis 8 Hash Field Expiration commands
- Added Redis 8
CMS.*(Count-Min Sketch) commands - Added Redis 8
HGETDELcommand - Added
SCRIPT SHOWsubcommand - Added
Cluster::getdel()andCluster::fullscan()methods - Added
serverName()andserverVersion()connection introspection methods - Added
databaseoption to connection array or context argument - Added
ValkeyCommandandDeprecatedattributes to the stubs
Changed
- Changed epoch failure from a PHP Warning to a log entry with
debuglevel - The optional argument for
BGSAVEnow takes an arbitrary string - Various internal improvements
Fixed
- Fixed a bug with loading cluster INI directives
- Fixed
relay.cap_endpoint_dbsdefault value - Fixed a bug where that sent duplicate
SETexpiry arguments - Fixed rare segfault while initialize cluster
- Fixed rare segfault with
HRANDFIELDcommand - Fixed an edge case where we weren't trying to reconnect
- Fixed abort for subclasses with custom properties
- Fixed using
Relay\Clusterclient in subscribe callback - Fixed
relayXAutoClaimFmtto be compatible with KeyDB reply
v0.10.1
Added
- Added
getWithMeta()method - Added
Relay::OPT_PACK_IGNORE_NUMBERSoption - Added
relay.cap_endpoint_dbsdirective and default totrue
Changed
- Changed the default lock to
adaptive-mutexwhere available - Changed PHP warnings to a debug log entries when keylock or read-tokens can't be acquired
Fixed
- Fixed core count detection in Docker environments
- Fixed an infinite loop in random key eviction
- Fixed a divide by zero bug in random key eviction
- Fixed a bug where transaction state didn't get cleared in a forked child
- Fixed a bug with incorrect start/end indexes of cached sorted set
- Fixed a bug when trying to read from a persistent link that is no longer accessible
- Fixed a bug where Relay was stashing non-ready connections leading to an assertion failure
v0.10.0
Added
- Added
relay.locks.*configuration directives - Added option
Relay::OPT_CLIENT_TRACKINGoption
Changed
- Switched to
mutexlocks by default for better performance - Several internal improvements and fixes
Fixed
- Added missed
contextparameter toSentinel::__construct() - Fixed cleaning up resources when terminated by
SIGTERMorSIGQUIT - Fixed rare
Relay\Clustermemory leaks - Fixed a signal reentrancy bug
v0.9.1
v0.9.0
Added
- Added
SWAPDBcommand - Added support for FT commands
- Added
Cluster::keys()method - Support caching
TYPEcommand - Support caching of ZSET commands
Changed
- Improved stubs and PhpRedis compatibility
- Improved performance and reliability invalidation signal handling
- Many internal improvements
- Prevent
getMode()andgetDdNum()from triggering peridicINFOcall
Fixed
- Fixed a dozen segfaults
- Fixed several of memory leaks
- Fixed several issues when transactions fail
- Fixed serialization and compression edge cases for many commands
- Fixed many edge cases when selecting databases
- Fixed several reply-types when PhpRedis compatibility is disabled
- Fixed
ZRANGEandPFCOUNTstubs to match PhpRedis - Fixed return type validation for
GEODISTandGEORADIUS - Fixed
HRANDFIELDcommand whenWITHVALUESis used
v0.8.1
Added
- Added experimental support
JSONcommands
Changed
- Only enable
CLIENT TRACKINGon links that can secure an in-memory cache - Attach to in-memory caches actively not lazily
- Improved error messages for invalid
session.save_pathURIs - Various performance, allocator and internal improvements
Fixed
- Fixed a memory leak in the session handler
- Improved authentication parsing in the session handler
- Fixed
Relay\Clustercommand compatibility with PhpRedis - Don't deserialize
KEYSreplies - Various improvements for the
SUBSCRIBEcommand-family - Fixed
stats()array index not matching database number