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.
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| [StackExchange.Redis](https://stackexchange.github.io/StackExchange.Redis/) ([source](https://github.com/StackExchange/StackExchange.Redis)) | nuget | patch | `2.9.17` -> `2.9.25` |
---
### Release Notes
<details>
<summary>StackExchange/StackExchange.Redis (StackExchange.Redis)</summary>
### [`v2.9.25`](https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.9.25)
[Compare Source](https://github.com/StackExchange/StackExchange.Redis/compare/2.9.24...2.9.25)
IMPORTANT: this release changes the distribution of pub/sub channels when using cluster; see [2.9.24](https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.9.24) for more details.
#### What's Changed
- eng: remove PublicSign windows-only restriction by [@​mgravell](https://github.com/mgravell) in https://github.com/StackExchange/StackExchange.Redis/pull/2963
This change is a critical fix that fixes a packaging failure in [2.9.24](https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.9.24); for the relevant *feature* changes: see [2.9.24](https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.9.24).
**Full Changelog**: https://github.com/StackExchange/StackExchange.Redis/compare/2.9.24...2.9.25
### [`v2.9.24`](https://github.com/StackExchange/StackExchange.Redis/releases/tag/2.9.24)
[Compare Source](https://github.com/StackExchange/StackExchange.Redis/compare/2.9.17...2.9.24)
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](https://github.com/mgravell) in https://github.com/StackExchange/StackExchange.Redis/pull/2956
- Remove supported Envoyproxy commands from exclusions. by [@​sshumakov](https://github.com/sshumakov) in https://github.com/StackExchange/StackExchange.Redis/pull/2957
- Convert to Hex only on Encoding.UTF8.GetString possible exceptions by [@​jcaspes](https://github.com/jcaspes) in https://github.com/StackExchange/StackExchange.Redis/pull/2954
- eng: prefer Volatile.Read over Thread.VolatileRead by [@​mgravell](https://github.com/mgravell) in https://github.com/StackExchange/StackExchange.Redis/pull/2960
- Channel routing: revert normal (non-`SSUBSCRIBE`) routing to random, with new `WithKeyRouting()` API to opt into routed by [@​mgravell](https://github.com/mgravell) in https://github.com/StackExchange/StackExchange.Redis/pull/2958
#### New Contributors
- [@​sshumakov](https://github.com/sshumakov) made their first contribution in https://github.com/StackExchange/StackExchange.Redis/pull/2957
- [@​jcaspes](https://github.com/jcaspes) made their first contribution in https://github.com/StackExchange/StackExchange.Redis/pull/2954
**Full Changelog**: https://github.com/StackExchange/StackExchange.Redis/compare/2.9.17...2.9.24
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
2.9.17->2.9.25Release Notes
StackExchange/StackExchange.Redis (StackExchange.Redis)
v2.9.25Compare Source
IMPORTANT: this release changes the distribution of pub/sub channels when using cluster; see 2.9.24 for more details.
What's Changed
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: https://github.com/StackExchange/StackExchange.Redis/compare/2.9.24...2.9.25
v2.9.24Compare Source
IMPORTANT: this release changes the distribution of pub/sub channels when using cluster:
(this change is specific to pub/sub with regular
SUBSCRIBEchannels, not "sharded"SSUBSCRIBEchannels)SSUBSCRIBE)SSUBSCRIBEchannels are now randomly distributed to nodes by default, but can optionally use key-like routing by calling.WithKeyRouting()on theRedisChannelvalueThis 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_notificationswould 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
SSUBSCRIBE) routing to random, with newWithKeyRouting()API to opt into routed by @mgravell in https://github.com/StackExchange/StackExchange.Redis/pull/2958New Contributors
Full Changelog: https://github.com/StackExchange/StackExchange.Redis/compare/2.9.17...2.9.24
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.