Repository navigation
v0.50.0
·
10 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Added
- Added EL10 builds
- Added
HIMPORTcommand - Added
Relay\Cluster::MSETEX - Added
Relay\Cluster::FCALL(_RO) - Added
Relay\Cluster::OPT_NODE_READ_TIMEOUTfor faster node failover - Added
Relay\Cluster::OPT_MULTIKEY_REORDERING - Added
Relay\Tablefixed-resolution/retention metric series - Added
infolog level
Changed
- Switched to
8.6.0beta2API for PHP 8.6 builds - Use configurable exponential backoff with jitter for unhealthy cluster node health checks
- Use a hardcoded upper bound for cluster redirects before giving up
- Flush all existing databases when calling
flushMemory(), not just active ones - Made
SMISMEMBER,BITPOSandTYPEcacheable - Made
ZRANK,ZREVRANK,ZCOUNT,ZSCOREandZMSCOREcacheable - Made Cluster reject
UNWATCHin aMULTItransaction in PhpRedis compatibility mode - Switched to incremental flushing of in-memory caches
- Over 40 additional internal improvements
Fixed
- Fixed a few
ZSETcaching edge cases - Fixed
[B]LMOVEMcompatibility with PhpRedis - Fixed a possible memory leak if a worker is terminated while in an EBR critical section
- Fixed command arity as reported by Redis
- Fixed a crash after manually disabling client tracking
- Fixed cluster cross-slot command aggregation
- Fixed an erroneous
relayLinkReleasebased on hiredis reader state - Fixed a signal sequencing issue that could cause an infinite loop
- Fixed a small
SIGIOrace when arming file descriptors to receive signals - Fixed boolean INI parsing so it will work for PHP 7.4 - 8.6
- Fixed
@returndocblock ofRelay\Table::fullscan() - Fixed
CLUSTER SHARDSparsing logic to be more robust and correct - Fixed possible crashes in
VSETATTR - Fixed session
max_execution_timehandling to match PhpRedis - Fixed
Relay\Clusterreturning a barefalsewithout setting the last error or throwing - Fixed our
WRONGTYPEmessage so it matches the server - Fixed raw
BITPOSandGETBITreporting nothing when Relay rejects the arguments itself - Fixed
Relay\Cluster::rawCommand()not validating command arity - Fixed
SMISMEMBERreturn type when responding from cache - Fixed leaving replicas in
MULTIstate after aDISCARD - Fixed
Relay\Clustertransaction bookkeeping for broadcast commands - Fixed lazy reconnect and node introspection after
Relay\Cluster::close() - Fixed
HGETDELandHGETEXinvalidating the wrong cache entry - Fixed crashes from malformed raw
MSET(EX|NX)andHGET(EX|DEL)arguments - Fixed
Relay\Cluster::rawCommand()crashing for commands without a dedicated command-table entry - Fixed event listener handling for queued flush events, dropped connections, and callbacks that modify listener registrations
- Fixed
Relay\Cluster::getOption(OPT_ADAPTIVE_CACHE)panicking - Fixed
Relay\Relay::option()crashing when explicitly passednull - Fixed options argument validation for
GEORADIUS(BYMEMBER)andGEOSEARCH(STORE) - Fixed assertion involving
SELECTwith wildly wrong dbs in a transaction - Fixed several edge cases and issues in
Relay\Cluster::fullscan() - Fixed handling a failed
DISCARDduring a transaction inRelay\Cluster - Fixed crash when
Relay\Clusterconnects to an incomplete/initializing cluster - Fixed a null pointer dereference when executing a transaction against a cluster that is still spinning up
- Ensure our signal handlers only run on the main PHP lifecycle thread
- Fixed a memory leak in CROSSSLOT errors
- Fixed memory leaks in
Relay\Clustersubscription callbacks and repeated allow/ignore pattern updates