From d099c105811350bbe6a23e221d865ba58749ef2c Mon Sep 17 00:00:00 2001 From: Sergei Georgiev Date: Thu, 22 Jan 2026 09:40:57 +0200 Subject: [PATCH] added: stream-idmp-duration and stream-idmp-maxsize to redis.conf (#14725) ## Summary Adds missing IDMP configuration parameters to redis.conf, previously ommitted in #14615 ## Changes - Added `stream-idmp-duration` configuration parameter with documentation - Added `stream-idmp-maxsize` configuration parameter with documentation - Both parameters were already implemented in the code (src/config.c, src/server.h) but were missing from redis.conf ## Configuration Parameters ### stream-idmp-duration - **Purpose**: Duration (in seconds) to remember IDMP identifiers for duplicate detection - **Range**: 1 to 86400 seconds (1 second to 24 hours) - **Default**: 100 seconds - **Modifiable**: Yes, via CONFIG SET at runtime ### stream-idmp-maxsize - **Purpose**: Maximum number of IDMP identifiers to track per producer per stream - **Range**: 1 to 10000 entries - **Default**: 100 entries - **Modifiable**: Yes, via CONFIG SET at runtime --- redis.conf | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/redis.conf b/redis.conf index 38e73bb5f..30a3d8b57 100644 --- a/redis.conf +++ b/redis.conf @@ -2145,6 +2145,30 @@ hll-sparse-max-bytes 3000 stream-node-max-bytes 4096 stream-node-max-entries 100 +# Redis Streams support Idempotent Message Producer (IDMP) tracking to prevent +# duplicate message delivery. When producers send messages with IDMP identifiers +# (using XADD with IDMP or IDMPAUTO parameters), Redis tracks these identifiers to +# detect and reject duplicates within a configurable time window. +# +# stream-idmp-duration: Specifies how long (in seconds) Redis should remember +# IDMP identifiers for duplicate detection. After this duration expires, old +# identifiers are automatically removed. This prevents unbounded memory growth +# while allowing reasonable duplicate detection windows. +# Valid range: 1 to 86400 seconds (1 second to 24 hours) +# Default: 100 seconds +# +# stream-idmp-maxsize: Maximum number of IDMP identifiers to track per producer +# per stream. Once this limit is reached, the oldest identifiers are evicted to +# make room for new ones. This caps memory usage for IDMP tracking. +# Valid range: 1 to 10000 entries +# Default: 100 entries +# +# Note: These are default values for new streams. Individual streams can override +# these settings using the XCFGSET command. +# +# stream-idmp-duration 100 +# stream-idmp-maxsize 100 + # Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in # order to help rehashing the main Redis hash table (the one mapping top-level # keys to values). The hash table implementation Redis uses (see dict.c)