The new version of Redis, 8.8, is now available on GitHub. Among its new features, a data structure called Array stands out, designed for fast operations by relative position. Additionally, it includes performance improvements such as LTO enabled by default on x86_64, more efficient thread usage, Rust code to reduce FFI overhead, optimizations for ARM64, and batch prefetching. An update aimed at efficiency without frills.
Technical details of the new structure and optimizations 🚀
The Array structure allows accessing and modifying elements based on their position in the set, useful for queues or priority lists. Compilation with LTO (Link Time Optimization) on x86_64 reduces binary size and improves execution speed. The new Rust code replaces critical parts of the FFI, eliminating bottlenecks in communication between languages. On ARM64, specific instructions have been fine-tuned for low-power servers. Batch prefetching speeds up data loading into memory during startup.
Developers also have feelings (and deadlines) 😅
The community has been asking for a data structure that is not just a simple hash or list for years. Now that the Array arrives, someone will surely use it to store shopping lists or the order of restocking in the fridge. The Rust part promises to reduce FFI overhead, although there are always those who think the problem wasn't the FFI, but the coffee machine. And LTO by default: finally we can compile Redis while waiting for coffee, not retirement.