Update docker.io/redis Docker tag to v8.6.0
Successfully upgraded the Docker container on the Database Host by means of Watchtower container with dependency update facilitated by Mend's Renovate Bot and on the Mastodon instance manually with Docker compose.
This MR contains the following updates:
| Package | Update | Change |
|---|---|---|
| docker.io/redis | minor | 8.4.0-alpine → 8.6.0-alpine |
Release Notes
redis/redis (docker.io/redis)
v8.6.0
This is the General Availability release of Redis 8.6 in Redis Open Source.
Major changes compared to 8.4
- Substantial performance improvements
- Substantial memory reduction for hashes (hashtable-encoded) and sorted sets (skiplist-encoded)
- Streams:
XADDidempotency (at-most-once guarantee) with newIDMPAUTOandIDMParguments - New eviction policies - least recently modified:
volatile-lrmandallkeys-lrm - Hot keys detection and reporting; new command:
HOTKEYS - TLS certificate-based automatic client authentication
- Time series: support NaN values; new aggregators:
COUNTNANandCOUNTALL
For more details, see the 8.6 release blog post.
Binary distributions
- Alpine and Debian Docker images - https://hub.docker.com/_/redis
- Install using snap - see https://github.com/redis/redis-snap
- Install using brew - see https://github.com/redis/homebrew-redis
- Install using RPM - see https://github.com/redis/redis-rpm
- Install using Debian APT - see https://github.com/redis/redis-debian
Operating systems we test Redis 8.6 on
- Ubuntu 22.04 (Jammy Jellyfish), 24.04 (Noble Numbat)
- Rocky Linux 8.10, 9.5
- AlmaLinux 8.10, 9.5, 10.1
- Debian 12 (Bookworm), Debian 13 (Trixie)
- macOS 14 (Sonoma), 15 (Sequoia)
New Features (compared to 8.6-RC1)
- #14695 Keys memory size histograms
Performance and resource utilization improvements (compared to 8.6-RC1)
- #14714 Optimize user ACL permission verification
- #14692 Optimize peak memory metric collection
- #14739 Avoid allocating and releasing list node in reply copy avoidance
- #14713 Reduce per command syscalls by reusing cached time when hardware monotonic clock is available
- #14726 Optimize
XREADGROUP CLAIM - #13962 Vector set: replace manual popcount with __builtin_popcountll for binary vector distance (Intel, AMD, ARM)
- #14474 Vector set: vectorized the quantized 8-bit vector distance calculation (Intel, AMD)
- #14492 Vector set: vectorize binary quantization path for vectorsets distance calculation (Intel, AMD)
Configuration parameters
- #14719
cluster-slot-stats-enabled- per-slot resource consumptions statistics to collect - #14695
key-memory-histogramscollect memory consumption histograms per data type
Metrics
- #14695
db0_distrib_lists_sizes,db0_distrib_sets_sizes,db0_distrib_hashes_sizes,db0_distrib_zsets_sizes
known bugs and limitations
- Streams: avoid using
XADDwith the newIDMPorIDMPAUTOoptions when usingappendonly yeswithaof-use-rdb-preamble no(non default).
This limitation will be removed in the next patch.
v8.4.1
Update urgency: SECURITY: There are security fixes in the release.
Security fixes
- RedisTimeSeries/RedisTimeSeries#1837, RedisJSON/RedisJSON#1474 Hide Personally Identifiable Information from server log
- RedisBloom/RedisBloom#936 Cuckoo filter: crash on RDB load on 0 buckets (MOD-11593)
- RedisBloom/RedisBloom#945 Bloom filter: crash on RDB load on large number of filters (MOD-11590)
Bug fixes
- #14637 Atomic slot migration: wrong adjacent slot range behavior
- #14567 Atomic slot migration: support delay trimming slots after finishing migrating slots
- #14746
CLUSTER SLOT-STATS: Fix few memory tracking bugs - RedisTimeSeries/RedisTimeSeries#1864 Atomic slot migration: time series limitations (MOD-13611)
- RediSearch/RediSearch#6973 Correct empty string token counting in byteOffset calculations to ensure accurate text position tracking (MOD-11233)
- RediSearch/RediSearch#6995 Prevent
FT.INFOcommand fanout to replicas to reduce unnecessary cluster traffic - RediSearch/RediSearch#7154 Display Background Indexing OOM warning in
FT.AGGREGATEwhen memory limits are approached (MOD-11817) - RediSearch/RediSearch#7219 Resolve concurrency issue in
FT.AGGREGATEreducer that caused intermittent errors (MOD-12243) - RediSearch/RediSearch#7255 Correct
BM25STDunderflow wraparound to prevent incorrect scoring (MOD-12223) - RediSearch/RediSearch#7264 Ensure accurate
totalDocsLenupdates to maintain correct document statistics (MOD-12234) - RediSearch/RediSearch#7275 Report used memory as unsigned long to prevent overflow (RED-169833)
- RediSearch/RediSearch#7350
FT.CREATEwith LeanVec parameters on non-Intel architectures (RED-176382) - RediSearch/RediSearch#7371 Validate
search-min-operation-workersmin value correctly (MOD-12383) - RediSearch/RediSearch#7430 Prevent coordinator deadlock in
FT.HYBRIDqueries by avoiding index read lock (MOD-12489) - RediSearch/RediSearch#7435 Ensure full profile output on timeout with
RETURNpolicy inFT.PROFILE(MOD-12320) - RediSearch/RediSearch#7446 Remove outdated validation from debug aggregate in cluster mode (MOD-12435)
- RediSearch/RediSearch#7455 Ensure internal cursors are deleted immediately in cluster mode (MOD-12493)
- RediSearch/RediSearch#7458 Correct GC regression that caused stability issues (MOD-12538)
- RediSearch/RediSearch#7460 Prevent potential double-free on error path in Fork GC (MOD-12521)
- RediSearch/RediSearch#7499 Propagate
HGETALLcommand in HDT mode (MOD-12662) - RediSearch/RediSearch#7534 Reduce number of worker threads asynchronously to prevent performance degradation (MOD-12252, MOD-11658)
- RediSearch/RediSearch#7553 Handle
WITHSCOREScorrectly when SCORE is sent alone without extra fields in coordinator (MOD-12647) - RediSearch/RediSearch#7560 Properly handle connection closing in IO thread at shutdown and fix searchRequestCtx freeing on error (MOD-12699)
- RediSearch/RediSearch#7685 Resolve cursor logical leak that could lead to resource exhaustion (MOD-12807)
- RediSearch/RediSearch#7710 Support for
WITHCOUNTinFT.AGGREGATE(MOD-11751) - RediSearch/RediSearch#7794 Correctly handle binary data with embedded NULLs to prevent crashes (MOD-13010)
- RediSearch/RediSearch#7812 Correct SVS GC for no-workers case (MOD-12983)
- RediSearch/RediSearch#7815 Fix command routing in cluster mode by not relying on shard index (MOD-13049)
- RediSearch/RediSearch#7823 Support vector blob only through parameter in
FT.HYBRID(MOD-13123) - RediSearch/RediSearch#7873 Handle warnings in empty
FT.AGGREGATEreplies in cluster mode (MOD-12640) - RediSearch/RediSearch#7897 Remove asserts from DownloadFile to prevent crash (MOD-13096)
- RediSearch/RediSearch#7901 Support multiple warnings in reply to prevent warning loss (MOD-13252)
- RediSearch/RediSearch#7903 Eliminate memory leak in
FT.HYBRIDqueries with Active-Active enabled (MOD-13143) - RediSearch/RediSearch#7886 Remove non-TEXT fields from spec's keys dictionary to prevent incorrect field handling (MOD-13150)
- RediSearch/RediSearch#7905 Remove non-TEXT fields from spec's keys dictionary and refactor keys dict (MOD-13150, MOD-13151)
- RediSearch/RediSearch#7978 Avoid using negative key position values during command registration (MOD-13332)
- RediSearch/RediSearch#8052 Resolve incorrect results when using
LOAD *withFT.HYBRID(MOD-12736, MOD-13556) - RediSearch/RediSearch#8083 Correct
FULLTEXTfield metric count accuracy (MOD-13432) - RediSearch/RediSearch#8089 Handle edge case in clusterset (MOD-13562)
- RediSearch/RediSearch#8151 Correct
FT.PROFILEshard total profile time calculation (MOD-13735, MOD-13181) - RediSearch/RediSearch#8153 Resolve config registration issue (RED-171841)
- RediSearch/RediSearch#7449 Ensure
FT.HYBRIDrespects timeout settings (MOD-11004) - RediSearch/RediSearch#7238 Initialize GIL_TIME properly for
FT.PROFILE(MOD-12553) - RediSearch/RediSearch#7453 Error behavior on early bailout and split OOM warning for shard and coordinator (MOD-12449)
- RediSearch/RediSearch#7615 Parameter
numDocsfrom non-optimized Wildcard iterator (MOD-12392) - RediSearch/RediSearch#7165 (Redis Enterprise only)
FT.DROPINDEXas touches-arbitrary-keys for proper cluster handling causing crash on A-A (MOD-11090) - RediSearch/RediSearch#7023 (Redis Enterprise only) Ensure all
FT.SUG*commands are hashslot-aware to prevent cluster routing errors (MOD-11756)
Performance and resource utilization improvements
- RediSearch/RediSearch#7496 Vector search performance improvements (MOD-12011, MOD-12063, MOD-12629, MOD-12346)
- RediSearch/RediSearch#7519 Reduce number of worker threads asynchronously to improve resource utilization (MOD-12252, MOD-11658)
- RediSearch/RediSearch#7694 Use asynchronous jobs in GC for SVS to reduce blocking (MOD-12668)
- RediSearch/RediSearch#7730 Support
filter_policyandbatch_sizeparameters for vector similarity search tuning (MOD-13007, MOD-12371) - RediSearch/RediSearch#7782 Resolve SVS GC failures when worker threads are disabled (MOD-12983)
- RediSearch/RediSearch#7572 Implement ASM state machine on notifications (MOD-12170)
- RediSearch/RediSearch#7829 ASM-aware search flow for Active-Active deployments (MOD-12171, MOD-12169)
- RediSearch/RediSearch#7589 Support multiple slot ranges in
search.CLUSTERSETfor flexible cluster topology updates (MOD-11657) - RediSearch/RediSearch#7862 Support subquery count in
FT.HYBRID(MOD-11858, MOD-13146) - RediSearch/RediSearch#7893 Request policy support for cursor operations (MOD-13146, MOD-9573, MOD-8104)
- RediSearch/RediSearch#8087 Warning when cursor may give inaccurate results due to Active-Active replication (MOD-12899)
- RediSearch/RediSearch#7445 Remove outdated validation from Debug Aggregate in cluster mode (MOD-12435)
- RediSearch/RediSearch#7384 Reduce index load from RDB temporary memory overhead (MOD-12212)
Metrics
- RediSearch/RediSearch#7960 Persist query warnings across cursor reads (MOD-12984)
- RediSearch/RediSearch#7612 Track
maxprefixexpansionserrors and warnings in info (MOD-12417) - RediSearch/RediSearch#7872 Handle warnings in empty
FT.AGGREGATEreplies in cluster mode (MOD-12640) - RediSearch/RediSearch#7900 Support multiple warnings in reply (MOD-13252)
- RediSearch/RediSearch#7576 Track OOM errors and warnings in info (MOD-12418)
- RediSearch/RediSearch#7507 Track timeout errors and warnings in info (MOD-12419)
- RediSearch/RediSearch#7341 Rename
FT.PROFILEcounter fields for clarity (MOD-6056) - RediSearch/RediSearch#7436, RediSearch/RediSearch#7427 Enhance
FT.PROFILEwith vector search execution details (MOD-12263) - RediSearch/RediSearch#7573 Debug support for
FT.PROFILEcommand (MOD-12627) - RediSearch/RediSearch#7736 Add
Internal cursor readsmetric to clusterFT.PROFILEoutput (MOD-12414) - RediSearch/RediSearch#7692 Declare query error struct on
_FT.CURSOR PROFILE(MOD-12955) - RediSearch/RediSearch#7848 Store and display shard ID in profile output (MOD-12321)
- RediSearch/RediSearch#7422 Track syntax and argument errors in query error metrics (MOD-12416)
- RediSearch/RediSearch#7552 Add
active_io_threadsmetric (MOD-12069, MOD-12695) - RediSearch/RediSearch#7622 Add
active_coord_threadsmetric (MOD-12694, MOD-12069) - RediSearch/RediSearch#7564 Add
active_worker_threadsmetric (MOD-12694, MOD-12069) - RediSearch/RediSearch#7626 Add
*_pending_jobsmetrics for job queues (MOD-12069) - RediSearch/RediSearch#7658 Add pending workers admin jobs metric (MOD-12069, MOD-12791)
- RediSearch/RediSearch#7731 Add
active_topology_update_threadsmetric (MOD-12069, MOD-12790) - RediSearch/RediSearch#7760 Extend indexing metrics for more detailed performance data (MOD-12070)
Configuration parameters
- RediSearch/RediSearch#7083 Add default scorer configuration option (MOD-10037)