Skip to content

Releases: StackExchange/StackExchange.Redis

2.9.25

29 Sep 14:45
2.9.25
0be1df7
Compare
Choose a tag to compare

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

2.9.24

26 Sep 14:08
2.9.24
307129e
Compare
Choose a tag to compare

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

2.9.17

10 Sep 10:24
229e9c5
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.9.11...2.9.17

2.9.11

20 Aug 09:15
2.9.11
4d2da7a
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.8.58...2.9.11

2.8.58

21 Jul 12:00
4c70460
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: 2.8.47...2.8.58

2.8.47

19 Jul 08:50
2.8.47
8a52783
Compare
Choose a tag to compare

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

2.8.41

10 Jun 19:54
2.8.41
ad5f656
Compare
Choose a tag to compare

What's Changed

Sharded pub/sub operations are where the pub/sub channels are distributed over a multi-node redis cluster using similar slot rules to keys; all such operations (for both "pub" and "sub") must be communicated to the correct node. This contrasts to regular/legacy pub/sub where you can "pub" or "sub" to any node, and the message is broadcast horizontally via all nodes in the cluster. To use sharded operations, use the RedisChannel.Sharded API when constructing channels. There is no concept of pattern-based sharded pub/sub.

Full Changelog: 2.8.37...2.8.41

2.8.37

06 May 14:58
e91c3eb
Compare
Choose a tag to compare

What's Changed

  • Add ConfigurationOptions.SetUserPemCertificate(...) and ConfigurationOptions.SetUserPfxCertificate(...) methods to simplify using client certificates (#2873 by @mgravell)
  • Add logging for when a Multiplexer reconfigures (#2864 by @st-dev-gh)
  • Fix: Move AuthenticateAsClient to fully async after dropping older framework support, to help client thread starvation in cases TLS negotiation stalls server-side (#2878 by @NickCraver)

New Contributors

Full Changelog: 2.8.31...2.8.37

2.8.31

07 Mar 13:30
Compare
Choose a tag to compare

What's Changed

  • Fix: Respect IReconnectRetryPolicy timing in the case that a node that was present disconnects indefinitely (#2856 by @NickCraver)
    • Special thanks to @sampdei tracking this down and working a fix
  • Changes max default retry policy backoff to 60 seconds (#2853 by @NickCraver)
  • Fix #2652: Track client-initiated shutdown for any pipe type (#2814 by @bgrainger)

New Contributors

Full Changelog: 2.8.24...2.8.31

2.8.24

18 Dec 18:55
0cb7d58
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.8.22...2.8.24