All Versions
39
Latest Version
Avg Release Cycle
121 days
Latest Release
7 days ago

Changelog History
Page 2

  • v2.11.0 Changes

    February 11, 2026

    ๐Ÿ“ฆ get 2.11.0 on NuGet

    What's Changed

    ๐ŸŽ For Redis 8.6:

    ๐Ÿš€ The time-series changes for 8.6 are over in NRedisStack 1.3.0

    Other features:

    • ๐Ÿ“„ (docs) Add support for keyspace notifications including cluster support by @mgravell in #2995
    • โšก๏ธ Update README to include Azure Managed Redis by @redis-phil in #3005

    Internal bits:

    ๐Ÿ†• New Contributors

    Full Changelog : 2.10.14...2.11.0

  • v2.10.14 Changes

    February 04, 2026

    Priority: high; the backlog fix (#3002) is rare and niche (specific to low-memory scenarios), but fixes a problem where the client can get into a non-recoverable state.

    What's Changed

    • ๐Ÿ›  fix: Handle Backlog Processor Startup Failures by @nathan-miller23 in #3002
    • ๐Ÿ›  fix: Propagate PhysicalBridge backlog to ServerCounters by @nathan-miller23 in #2996
    • ๐Ÿ›  fix incorrect debug assertion in HGETEX; no impact to release build by @mgravell in #2999
    • ๐Ÿ‘ท (eng) CI trivia - docker image, codeql, enable manual CI runs (@mgravell)

    ๐Ÿ†• New Contributors

    Full Changelog : 2.10.1...2.10.14

  • v2.10.1 Changes

    November 06, 2025

    โž• Adds support for Redis 8.4 features

    • ๐Ÿ‘Œ support multi-string-set with expiration MSETEX ...; details controlled via new Expiration API
    • ๐Ÿ‘Œ support checked string-set SET ... IFEQ/IFNE/IFDEQ/IFDNE digestOrValue; details controlled via new ValueCondition API; also uses Expiration for expiry
    • ๐Ÿ‘Œ support checked string-delete DELEX ... IFEQ/IFNE/IFDEQ/IFDNE digestOrValue (again via ValueCondition)
    • ๐Ÿš€ use checked string-set/delete to implement LockExtend[Async]/LockRelease[Async] when possible
    • ๐Ÿ‘Œ support XREADGROUP ... CLAIM minIdleTime for simplified stream processing

    ๐Ÿ— Note that niche StringSet[Async] scenarios may require trivial build changes due to removing default parameter values; this simplify means explicitly specifying keepTtl, or using the new Expiration API. There is no impact to already compiled code (no methods have been removed).

    8.4 also includes "hybrid search"; this is not currently exposed in SE.Redis, and will be added to NRedisStack ASAP.

    What's Changed

    Full Changelog : 2.9.32...2.10.1

  • v2.9.32 Changes

    October 13, 2025

    What's Changed

    • ๐Ÿ›  Fix sharded pub/sub handling over slot migrations by @mgravell in #2969
    • ๐Ÿ— (build) "actions": support publishing to MyGet off main branch by @NickCraver in #2964
    • โšก๏ธ (build) Update CI badge by @mgravell in #2967

    Full Changelog : 2.9.25...2.9.32

  • v2.9.25 Changes

    September 29, 2025

    ๐Ÿš€ IMPORTANT: this release changes the distribution of pub/sub channels when using cluster; see 2.9.24 for more details.

    What's Changed

    • ๐Ÿ eng: remove PublicSign windows-only restriction by @mgravell in #2963

    ๐Ÿ”‹ This change is a critical fix that fixes a packaging failure in 2.9.24; for the relevant feature changes: see 2.9.24.

    Full Changelog : 2.9.24...2.9.25

  • v2.9.24 Changes

    September 26, 2025

    ๐Ÿš€ IMPORTANT: this release changes the distribution of pub/sub channels when using cluster:

    (this change is specific to pub/sub with regular SUBSCRIBE channels, not "sharded" SSUBSCRIBE channels)

    • pre 2.9.24: all channels would always be routed similarly to key-like routing (and similar to SSUBSCRIBE)
    • from 2.9.24: non-SSUBSCRIBE channels are now randomly distributed to nodes by default, but can optionally use key-like routing by calling .WithKeyRouting() on the RedisChannel value

    This change represents a safer, "least surprises" default; most people expect their cluster to help distribute load, including pub/sub load, between nodes. This is especially useful when there are few (or even only a single) channel(s) that dominate the pub/sub load, which is surprisingly common. Without this change, all that load would be handled only by a single server, because the channel my_notifications would be treated similarly to a key, via hash-slot sharding, and all clients would connect to the node serving that slot - when in reality, any node can be used for subscription, with the server distributing events horizontally to all nodes.

    If you prefer the routed behaviour: use .WithKeyRouting() before subscribing.


    What's Changed

    • ๐Ÿ›  Fix 2951 - Sentinel reconnect failure by @mgravell in #2956
    • โœ‚ Remove supported Envoyproxy commands from exclusions. by @sshumakov in #2957
    • Convert to Hex only on Encoding.UTF8.GetString possible exceptions by @jcaspes in #2954
    • eng: prefer Volatile.Read over Thread.VolatileRead by @mgravell in #2960
    • โช Channel routing: revert normal (non-SSUBSCRIBE) routing to random, with new WithKeyRouting() API to opt into routed by @mgravell in #2958

    ๐Ÿ†• New Contributors

    Full Changelog : 2.9.17...2.9.24

  • v2.9.17 Changes

    September 10, 2025

    What's Changed

    • โž• Add vector-set support by @mgravell in #2939
    • ๐Ÿ›  fix: RedisValue/RedisResult: cast to double should respect special values by @mgravell in #2950
    • Internals:
      • Enable CA1852 (sealed) and fix warnings for it by @Henr1k80 in #2942
      • Flush & write concurrently in LoggingTunnel and avoid double lookups in dictionaries by @Henr1k80 in #2943

    Full Changelog : 2.9.11...2.9.17

  • v2.9.11 Changes

    August 20, 2025

    What's Changed

    ๐Ÿ†• New Contributors

    Full Changelog : 2.8.58...2.9.11

  • v2.8.58 Changes

    July 21, 2025

    What's Changed

    • โฌ†๏ธ [Tests] Upgrade to xUnit v3 by @NickCraver in #2907
    • โœ… test fix; skip CLIENT PAUSE tests unless long-running enabled by @mgravell in #2916
    • StreamGroupInfo.Lag can be null by @robhop in #2902
    • โž• Add xtrim with minid and new 8.2 stream features by @mgravell in #2912
    • ๐ŸŒฒ Replaces inline logging with source-generated LoggerMessage by @Meir017 in #2903
    • Implement internal cancellation for SCAN via WithCancellation by @mgravell in #2911
    • ๐Ÿšš move logger extensions to LoggerExtensions.cs (extends 2903) by @mgravell in #2917
    • ๐Ÿ›  fix-zrevrangebylex by @ArnoKoll in #2636
    • ๐Ÿ›  Fix #2679: connect/config: only access task.Result if we know it completed by @mgravell in #2680

    ๐Ÿ†• New Contributors

    Full Changelog : 2.8.47...2.8.58

  • v2.8.47 Changes

    July 19, 2025

    What's Changed

    • ๐Ÿ†• New operations of BITOP command in Redis Community Edition 8.2 by @atakavci in #2900
    • ๐Ÿ›  Fix CLIENT ID error during handshake by @mgravell in #2909
    • ๐Ÿ“„ docs: offer guidance on using framework methods for async timeouts / cancellation by @mgravell in #2910
    • โšก๏ธ Update package dependencies by @mgravell in #2906

    Full Changelog : 2.8.41...2.8.47