Hi all! Redis 5 is finally out... 1 year and 3 months after the
release of Redis 4, making Redis having a gestation length surely
greater than humans, and very similar to the one of whales.
So to make the pill sweeter, let's start with a recap of what you get
with Redis 5:
1. The new Stream data type.
https://redis.io/topics/streams-intro
2. New Redis modules APIs: Timers, Cluster and Dictionary APIs.
3. RDB now stores LFU and LRU information.
4. The cluster manager was ported from Ruby (redis-trib.rb) to C code
inside redis-cli. Check `redis-cli --cluster help` for more info.
5. New sorted set commands: ZPOPMIN/MAX and blocking variants.
6. Active defragmentation version 2.
7. Improvemenets in HyperLogLog implementations.
8. Better memory reporting capabilities.
9. Many commands with sub-commands now have an HELP subcommand.
10. Better performances when clients connect and disconnect often.
11. Many bug fixes and other random improvements.
12. Jemalloc was upgraded to version 5.1
13. CLIENT UNBLOCK and CLIENT ID.
14. The LOLWUT command was added.
http://antirez.com/news/123
15. We no longer use the "slave" word if not for API backward compatibility.
16. Differnet optimizations in the networking layer.
17. Lua improvements:
- Better propagation of Lua scripts to slaves / AOF.
- Lua scripts can now timeout and get in -BUSY state in the slave as well.
18. Dynamic HZ to balance idle CPU usage with responsiveness.
19. The Redis core was refactored and improved in many ways.
However the list above really does not do justice to the changes of Redis 5
since the core was improved in many ways during the development of the new
version. Certain changes were back ported into Redis 4 once they were
sensed as safe, because many improvements were hard to distinguish from fixes.
The most important user facing improvement is without doubts the introduction
of the new general purpose data type after years: the streams.
Note that we worked to improve and fix streams till a few hours ago, so while
we are not aware of critical bugs in this release, surely there is to handle it
with some care for the first weeks. Bug reporting will be highly appreciated and
we are ready to work immediately to release 5.0.1 once there is enough important
stuff to justify a new release (probably soon).
People not using the streams can have probably a better production-ready
experience with Redis 5, also because many internals are shared with Redis 4
so the jump is not as big as it was between 3.2 and 4 in terms of how things
internally work. Yet around Lua scripting there are certain
implementation differences.
Well, many thanks to the Redis community and the developers that made
this release possible, contributing bug reports, patches, new features, working
on the clients, sometimes debugging problems for days. Also thank to everybody
that adopted Redis for their use cases making things work for users worldwide.
We can boldly say that Redis 5 is definitely the product of many
developers and companies working together to build something together,
which is great!
Where to grab it?
As usually...
https://redis.io for tarballs, or the 5.0.0 tag on Github.
The sha256 digests are as usually here:
https://github.com/antirez/redis-hashes
Have fun,
Salvatore
--
Salvatore 'antirez' Sanfilippo
open source developer - Redis Labs
https://redislabs.com
"If a system is to have conceptual integrity, someone must control the
concepts."
— Fred Brooks, "The Mythical Man-Month", 1975.