Upgrade urgency CRITICAL: 4.0.0 GA fixes many important bugs.
Dear Redis users,
this is the first stable version of Redis 4.0. There are a number
of bug fixes and improvements compared to the previous RC, mainly:
* Different replication fixes to PSYNC2, the new 4.0 replication engine.
* Modules thread safe contexts were introduced. They are an experimental API right now, but the API is considered to be stable and usable when needed.
* SLOWLOG now logs the offending client name and address. Note that this is a backward compatibility breakage in case old code assumes that the slowlog entry is composed of exactly three entries.
* The modules native data types RDB format changed.
* The AOF check utility is now able to deal with RDB preambles.
* GEORADIUS_RO and GEORADIUSBYMEMBER_RO variants, not supporting the STORE option, were added in order to allow read-only scaling of such queries.
* HSET is now variadic, and HMSET is considered deprecated (but will be supported for years to come). Please use HSET in new code.
* GEORADIUS huge radius (>= ~6000 km) corner cases fixed, certain elements near the edges were not returned.
* DEBUG DIGEST modules API added.
* HyperLogLog commands no longer crash on certain input (non HLL) strings.
* Fixed SLAVEOF inside MULTI/EXEC blocks.
* Many other minor bug fixes and improvements.
Note that 4.0 is probably one of the most extreme releases of Redis ever
made in terms of changes inside the internals: all the aggregated data types
no longer use Redis Objects structures but directly SDS objects, certain
deletion operations are now threaded, the replication engine was modified
in many ways. So please handle this release with care. A few patch-level
releases will follow in the next weeks and months fixing the important issues
discovered by the users.
You can read the new set of features below in this file, there are a lot
of improvements that can make a real difference in real world use cases.
Also note that Redis 4.0 is, as usually, almost a perfect superset of Redis
3.2, so it is very rare that compatibility with the past is broken in terms
of exported commands.
IMPORTANT: Redis Cluster users, please note that, as specified in the list
of incompatibilities, Redis 4.0 cluster bus protocol is not compatible with
Redis 3.2, so in order to upgrade, a mass reboot of the instances is needed
and rolling upgrades are not possible. This change was needed in order to
add compatibility for Containers/NAT, where the bus port at a fixed offset
was not an acceptable design, so we had to change many things, resulting
in the incompatible protocol.
Have fun with Redis 4.0!
Salvatore
antirez in commit c29852ff:
Modules: fix thread safe context DB selection.
1 file changed, 3 insertions(+)
antirez in commit b73f186a:
Modules documentation removed from source.
4 files changed, 2830 deletions(-)
antirez in commit 09d93ec9:
Markdown generation of Redis Modules API reference improved.
Issue #4027: unify comment and modify return value in freeMemoryIfNeeded().
2 files changed, 7 insertions(+), 7 deletions(-)
Suraj Narkhede in commit 896c4690:
Fix following issues in blocking commands: 1. brpop last key index, thus checking all keys for slots. 2. Memory leak in clusterRedirectBlockedClientIfNeeded. 3. Remove while loop in clusterRedirectBlockedClientIfNeeded.
1 file changed, 1 insertion(+)
Zachary Marquez in commit deeb795a:
Prevent expirations and evictions while paused
2 files changed, 10 insertions(+)
antirez in commit a6615423:
Upgrade 4.0 changelog with more backward incompatibilities.
1 file changed, 8 insertions(+)
xuzhou in commit 0b367871:
Optimize set command with ex/px when updating aof.
1 file changed, 3 insertions(+), 3 deletions(-)
antirez in commit 2ae733d9:
redis-benchmark: add -t hset target.
1 file changed, 7 insertions(+)
xuzhou in commit 63e1c9f2:
Fix set with ex/px option when propagated to aof
4 files changed, 36 insertions(+), 1 deletion(-)
minghang.zmh in commit 0231156f:
fix server.stat_net_output_bytes calc bug
1 file changed, 1 insertion(+), 1 deletion(-)
xuchengxuan in commit e99954e4:
Fixed comments of slowlog duration
1 file changed, 1 insertion(+), 1 deletion(-)
cbgbt in commit d048f972:
cli: Only print elapsed time on OUTPUT_STANDARD
1 file changed, 3 insertions(+), 1 deletion(-)
Aric Huang in commit b5f22939:
(fix) Update create-cluster README
1 file changed, 4 insertions(+), 4 deletions(-)
antirez in commit 0b7ba621:
SLOWLOG: log offending client address and name.
4 files changed, 27 insertions(+), 7 deletions(-)
Antonio Mallia in commit 1fbc90fe:
Removed duplicate 'sys/socket.h' include
1 file changed, 1 deletion(-)
Antonio Mallia in commit c7a6b711:
Fixed comment in clusterMsg version field
1 file changed, 1 insertion(+), 1 deletion(-)
Qu Chen in commit 73d358f7:
Implement getKeys procedure for georadius and georadiusbymember commands.