8.8-M02
This is the second Milestone of Redis 8.8 in Redis Open Source.
Milestones are non-feature-complete pre-releases. Pre-releases are not suitable for production use.
Redis 8.8 introduces new features and performance improvements.
8.8-M02 is available as a Docker image and can be downloaded from Docker Hub. Additional distributions will be introduced in upcoming pre-releases.
XNACK: a new streams command that allows consumers to explicitly release pending messagesJSON.SET: new FPHA argument to specify the FP type for FP homogeneous arrays (MOD-13577)ZUNION, ZINTER, ZUNIONSTORE, ZINTERSTORE: new COUNT aggregatorTS.RANGE, TS.REVRANGE, TS.MRANGE, TS.MREVRANGE: multiple aggregators in a single command (MOD-9162)XINFO STREAM: wrong value in the per-slot memory trackingHEXPIRE: overflow on fields countXREADGROUP: consumer replication inconsistencyCOMMAND GETKEYS for PFMERGE with no source keyslpSafeToAddhide_user_data_from_log is enabledINFO KEYSIZES and INFO ALLOCSIZES fixesHOTKEYS HELP subcommand (Each command having subcommands needs a HELP subcommand)RESTORE and SET: expiredkeys counter updates incorrectly on keys with past expiration timegetKeysFreeResult() on cross-slot error pathused_memory_dataset calculationHOTKEYS results field sampled-command-selected-slots-us to sampled-commands-selected-slots-usHOTKEYS does not track each command in a MULTI/EXEC blockHOTKEYS GET RESP3 reply fixed to map instead of flat arrayJSON.NUMINCRBY, JSON.NUMMULTBY don’t error on numeric overflow (MOD-14191)TS.INCRBY, TS.DECRBY create key before validating args (MOD-8167)TS.RANGE with aggregation and EMPTYBITOP operations with AVX512SFLUSH can now flush slots partiallySFLUSH skips slot trimming when the requested slot ranges exactly match the node’s local slot coverageTS.RANGE, TS.REVRANGE, TS.MRANGE, TS.MREVRANGE: improve performance on a cluster setup (RED-184104)type_changed KSN instead of set (MOD-12919)RedisModule_CreateKeyMetaClass - define a new key-metadata classRedisModule_ReleaseKeyMetaClass - release a key-metadata classRedisModule_SetModuleMetadata - attach or update metadata to a keyRedisModule_GetKeyMeta - get key metadataINFO STATS - global stats for slowlog metrics:
slowlog_commands_count - commands written to slowlogslowlog_commands_time_ms_sum - sum of execution times of commands from the slowlogslowlog_commands_time_ms_max - maximum execution time of a command from the slowlogINFO COMMANDSTATS - per-command stats for slowlog metrics:
slowlog_count - number of times the command was written in the slowlogslowlog_time_ms_sum - sum of execution time of the command (only from the slowlog)slowlog_time_ms_max - maximum execution time of the command (only from the slowlog)INFO STATS (global, all clients aggregated):
total_client_processing_events: attempts to process client input buffers; does not guarantee any command was actually parsedeventloop_cycles_with_clients_processing: event loop cycles where client input buffers were processedcommands_per_parse_batch_sum: cumulative number of commands parsed across all parsing batches for all clientscommands_per_parse_batch_cnt: number of parsing batches across all clients. A batch is counted each time at least one command is parsed from a client's query buffercommands_per_parse_batch_avg: average commands parsed per batch (sum/cnt). Approximates pipelining depthCLIENT INFO and CLIENT LIST (per-client):
read-events: number of read events for this clientparse-batch-cmd-sum: cumulative number of commands parsed across all parsing batches for this clientparse-batch-cnt: total number of parsing batches for this client. Divide parse-batch-cmd-sum by this value to get the client’s average commands per batchFetched May 1, 2026