Releases: FoundatioFx/Foundatio.Redis
v13.0.0
v13.0.0
This release brings Redis Cluster sharded pub/sub, replica read routing, Valkey compatibility testing, and all the reliability improvements from Foundatio v13.0.0.
Documentation: foundatio.dev -- see the Caching, Messaging, and Queues guides for Redis-specific configuration and examples.
Themes:
- Redis Cluster Support: Sharded pub/sub eliminates duplicate message delivery in cluster topologies
- Read Scaling: New
ReadModeoption routes reads to replicas for improved throughput - Valkey Compatibility: Test suite now validates against both Redis and Valkey
- Foundatio v13 Core: NRT audit, two-phase dispose, .NET 10 target, xUnit v3
Breaking Changes
- Consistent cache expiration return values:
GetExpirationAsyncnow returns normalized values across all implementations. by @niemyjski in #128 - Updated to Foundatio 13.0.0 core -- see migration guide
- NRT annotations updated -- nullable return types and parameters may have changed
- Removed obsolete single-parameter
GetFileStreamAsyncoverload (c03b5d11)
Added
- Sharded pub/sub for Redis Cluster: Fixes duplicate message delivery when running in cluster mode. by @niemyjski in #141
ReadModeoption for replica read routing: Configure replica read routing across all Redis providers. by @niemyjski in #154- RESP3 dual-protocol testing: Test coverage for both RESP2 and RESP3 protocols. by @niemyjski in #153
GetAllExpirationsAsync/SetAllExpirationsAsync: Bulk expiration read/write support with improved test coverage. by @niemyjski in #122- Valkey compatibility testing: CI now tests against Valkey in addition to Redis. by @niemyjski in
ce6d2653
Changed
- Two-phase dispose lifecycle for Redis MessageBus. by @niemyjski in #161
- Improved Redis cache increment and remove operations. by @niemyjski in
d5debfb6 - Improved Redis cache expiration handling. by @niemyjski in
420966e8 - Changed
_channelfrom nullable lazy-init to readonly constructor-initialized field with argument validation. by @niemyjski ined91aad7 - Normalized dead letter logging and added poisoned message tests. by @niemyjski in
8c2c07fb - Fixed potential deadlocks during shutdown. by @niemyjski in
fc93c2ad - Enhanced RedisMessageBus error handling. by @niemyjski in
23c97ea1 - Added healthchecks to Docker Compose services. by @niemyjski in
c788eda6 - Target framework updated to .NET 10. by @niemyjski in
a8bc1e5c - Upgraded to xUnit v3
Fixed
- Leaking queue instances: Fixed in
CanHaveDifferentMessageTypeInQueuetest. by @niemyjski in #149 - Flaky tests: Fixed intermittent test failures. by @niemyjski in #129
- NRT errors fixed and
TreatWarningsAsErrorsenabled. by @niemyjski in #159
Dependencies
| Package | From | To |
|---|---|---|
| Foundatio | 12.0.0 | 13.0.0 |
| StackExchange.Redis | 2.9.11 | 2.12.14 |
| BenchmarkDotNet | 0.15.2 | 0.15.8 |
| Exceptionless.RandomData | 1.2.2 | 2.0.1 |
Contributors
Full Changelog: v12.0.0...v13.0.0
v13.0.0-beta6
What's Changed
- Bump StackExchange.Redis from 2.11.0 to 2.11.3 by @dependabot[bot] in #144
- Fix leaking queue instances in CanHaveDifferentMessageTypeInQueueWith… by @niemyjski in #149
- Bump StackExchange.Redis from 2.11.8 to 2.12.1 by @dependabot[bot] in #152
- Add RESP3 dual-protocol testing alongside RESP2 by @niemyjski in #153
- Add ReadMode option for replica read routing across all Redis providers by @niemyjski in #154
- Bump StackExchange.Redis from 2.12.4 to 2.12.8 by @dependabot[bot] in #156
- Bump StackExchange.Redis from 2.12.8 to 2.12.14 by @dependabot[bot] in #158
- Fix NRT errors and enable TreatWarningsAsErrors by @niemyjski in #159
- fix: adapt Redis MessageBus to two-phase dispose lifecycle by @niemyjski in #161
Full Changelog: v13.0.0-beta3...v13.0.0-beta6
v13.0.0-beta3
What's Changed
- Bump StackExchange.Redis from 2.10.1 to 2.10.14 by @dependabot[bot] in #140
- Use sharded pub/sub for Redis Cluster to fix duplicate message delivery by @niemyjski in #141
Full Changelog: v13.0.0-beta1...v13.0.0-beta3
v13.0.0-beta1
Please read https://github.com/FoundatioFx/Foundatio/releases/tag/v13.0.0-beta1 for a full list of breaking changes.
What's Changed
- Bump StackExchange.Redis from 2.9.11 to 2.9.17 by @dependabot[bot] in #110
- Bump BenchmarkDotNet from 0.15.2 to 0.15.3 by @dependabot[bot] in #111
- Bump BenchmarkDotNet from 0.15.3 to 0.15.4 by @dependabot[bot] in #113
- Bump StackExchange.Redis from 2.9.25 to 2.9.32 by @dependabot[bot] in #115
- Bump BenchmarkDotNet from 0.15.4 to 0.15.6 by @dependabot[bot] in #118
- [Cache]: Added GetAllExpirationsAsync and SetAllExpirationsAsync. Also refactored tests and improved test coverage. by @niemyjski in #122
- [Breaking] CacheClient ensure consistent return values for expires in. by @niemyjski in #128
- Fix flakey Tests by @niemyjski in #129
Full Changelog: v12.0.0...v13.0.0-beta1
v12.0.0
What's Changed
- Breaking changes for RemoveByPrefix now acts like a prefix
- Better Cluster support
- Add redis database selection by @TeddyAlbina in #101
- Bump BenchmarkDotNet from 0.14.0 to 0.15.2 by @dependabot[bot] in #104
- Improves Redis operations resilience by @niemyjski in #108
New Contributors
- @TeddyAlbina made their first contribution in #101
Full Changelog: v11.1.0...v12.0.0
v11.1.0
What's Changed
- Bump StackExchange.Redis from 2.8.24 to 2.8.31 by @dependabot in #96
- Bump Microsoft.NET.Test.Sdk from 17.12.0 to 17.13.0 by @dependabot in #94
- Bump xunit.runner.visualstudio from 3.0.1 to 3.0.2 by @dependabot in #93
- Batch delete keys by @niemyjski in #98
- PERF: RemoveAll Tests and ensure we return a deterministic remove all count + batching by @niemyjski in #99
- [BREAKING]: Cache Client lists no longer have a sliding expiration and each cache item expires independently by @niemyjski in #97
Full Changelog: v11.0.8...v11.1.0
v11.0.8
What's Changed
- Bump StackExchange.Redis from 2.8.16 to 2.8.22 by @dependabot in #87
- Bump StackExchange.Redis from 2.8.22 to 2.8.24 by @dependabot in #89
Full Changelog: v11.0.6...v11.0.8
v11.0.6
Full Changelog: v11.0.5...v11.0.6
v11.0.5
Full Changelog: v11.0.4...v11.0.5
v11.0.4
Full Changelog: v11.0.2...v11.0.4