Releases: cachewerk/relay
Releases · cachewerk/relay
v0.6.0
Added
- Added
Relay::OPT_TCP_KEEPALIVEoption - Added
timeout(),getTimeout()andgetPersistentID()methods - Added
addIgnorePatterns()andaddAllowPatterns()methods - Added
ACLsupport - Added
XADD,XACK,XREAD,XREADGROUP,XINFO,XGROUPandXDELsupport - Added
XCLAIM,XAUTOCLAIM,XRANGE,XREVRANGE,XLEN,XTRIMandXPENDINGsupport - Added
GEOADD,GEOHASH,GEODIST,GEOSEARCHandGEOSEARCHSTOREsupport - Added
GEORADIUS,GEORADIUS_RO,GEORADIUSBYMEMBERandGEORADIUSBYMEMBER_ROsupport - Added
PFADD,PFMERGE, andPFCOUNTsupport - Added
FUNCTION,FCALLandFCALL_ROsupport
Changed
- Reworked memory allocation and heartbeats to be more robust
- More robust error handling and diagnostics
- Implemented retry logic for background metadata
- Various minor bug fixes and optimizations
Fixed
- Fixed a leak when calling
connect()more than once - Fixed a rare bug where that caused stale data
- Fixed
BITCOUNTagainst aNILkey
v0.5.1
Added
- Added
Relay\KeyTypeenum - Added
Relay\Attributes\{Local, Server, Http, RedisCommand, Cached}method attributes - Added
BITOPsupport - Added
SORTandSORT_ROsupport - Added
WAIT,MIGRATE,REPLICAOFandSLOWLOGsupport
Changed
- Log key invalidations at
debuglevel - Minor refactoring and optimizations
Fixed
- Fixed
INFOreply handler when given an invalid section
v0.5.0
Added
- Added
Relay::VERSIONconstant - Added
Relay\Sentinelimplementation - Added
LMPOP,ZMPOP,BLMPOPandBZMPOPsupport - Added
ZRANGESTORE,TOUCH,EVAL_ROandEVALSHA_ROsupport - Added network I/O statistics
- Added
getBytes()andclearBytes()methods - Added
_compress()and_uncompress()methods - Support multiple
INFOsegments - Support
BIT|BYTEmodifier forBITPOS - Support all
EXPIREoptions
Changed
- Various performance improvements
- Switched to single key invalidation
- Renamed
RELAY_SCAN_*class constants toSCAN_* - Renamed
memory()tomaxMemory()
Fixed
- Added
#[\SensitiveParameter]to stubs - Fixed non-zero terminated JSON encoding issue
- Support negative Zstandard compression levels
v0.4.6
Added
- Added
PUBLISH,CONFIGandCOMMANDsupport - Added
HRANDFIELD,BITCOUNT,LPOS,EXPIRETIMEandMOVEsupport - Allow the in-memory cache to be disabled per Relay instance
- Allow the in-memory cache to be disabled globally by setting
relay.maxmemory = 0 - Added
memory()that returns the total allocated cache size - Reintroduce
socketId()method
Changed
- Several internal changes to prepare for PHP 8.2
- Switched to UUID v7 for runtimes and Nil UUID as placeholder
Fixed
- Fixed a bug in
EXISTSwhere the first key was accidentally skipped internally - Fixed
LRANGEbug that was erroneously changing the end range if we already had the length cached locally - Fixed a bug when forked child would erroneously free data owned by its parent
v0.4.5
v0.4.4
Added
- Added basic support for exponential backoff
- Added
OPT_BACKOFF_ALGORITHM,OPT_BACKOFF_BASEandOPT_BACKOFF_CAPsupport
Changed
- Made error handling more robust and useful
- Improved warm cache read performance by ~5% percent by avoiding
setjmpoverhead - Made memory allocator slightly faster with designated tree node initializer struct
Fixed
- Fixed database recycling logic
- Fixed edge-case error conditions
- Prevented a rare bug in Redis'
PUSHmessages when flushing in transactions - Prevent setting
TCP_KEEPALIVEon unix sockets - Various stub fixes and improvements
Removed
- Removed legacy password handling
v0.4.3
v0.4.2
Added
- Added
Relay::client()method - Added
Relay::OPT_ALLOW_PATTERNSoption - Added class constants to stubs
- Added ZTS and OpenSSL 3.0 builds for Debian/Ubuntu
Changed
- Speed up Zstandard operations
- Throw exception for
NOPERMerrors - Made interaction with shared endpoints more efficient when using ACLs
Fixed
- Fixed TLS connection issue
- Fixed rare memory leak
v0.4.1
v0.4.0
This release is a massive architectural rewrite with hundreds of internal changes. To make Relay more resilient and even faster, the server-side worker thread was removed in favor of serverless approach and per-connection invalidations with partially-shared in-memory caches. Additionally, unlicensed binaries will now run at full memory capacity for an hour before gracefully scaling down to the default limit.
Added
- Added
pexpire()andpexpireat()methods - Added
_pack()and_unpack()helpers - Added
pconnect(),close()andpclose()
Changed
- Updated
relay.inistub to match new architecture - Added
$connectionIdparameter toflushMemory() socketKey()is now calledendpointId()- Switched to xxHash rather than dbj2 and fnv1a
- Use asynchronous DNS resolution
Removed
- Removed
socketId()method libevdependency is no longer required