Skip to content

Releases: StackExchange/StackExchange.Redis

2.7.17

16 Jan 16:28
b2694b3
Compare
Choose a tag to compare

What's Changed

Full Changelog: 2.7.10...2.7.17

2.7.10

12 Dec 16:04
9a3003f
Compare
Choose a tag to compare
  • Fix #2593: EXPIRETIME and PEXPIRETIME miscategorized as PrimaryOnly commands causing them to fail when issued against a read-only replica (#2593 by @slorello89)
  • Fix #2591: Add HELLO to Sentinel connections so they can support RESP3 (#2601 by @NickCraver)
  • Fix #2595: Add detection handling for dead sockets that the OS says are okay, seen especially in Linux environments (#2610 by @NickCraver)

Full Changelog: 2.7.4...2.7.10

2.7.4

31 Oct 15:02
c05179f
Compare
Choose a tag to compare

Full Changelog: https://github.com/StackExchange/StackExchange.Redis/compare/2.6.122..2.7.4

2.6.122

07 Jul 16:13
ce9506b
Compare
Choose a tag to compare
  • Change: Target net6.0 instead of net5.0, since net5.0 is end of life. (#2497 by @eerhardt)
  • Fix: Fix nullability annotation of IConnectionMultiplexer.RegisterProfiler (#2494 by @eerhardt)
  • Add: Timer.ActiveCount under POOL in timeout messages on .NET 6+ to help diagnose timer overload affecting timeout evaluations (#2500 by @NickCraver)
  • Add: LibraryName configuration option; allows the library name to be controlled at the individual options level (in addition to the existing controls in DefaultOptionsProvider) (#2502 by @mgravell)
  • Add: DefaultOptionsProvider.GetProvider allows lookup of provider by endpoint (#2502 by @mgravell)

Full Changelog: 2.6.116...2.6.122

2.6.116

13 Jun 15:45
309d276
Compare
Choose a tag to compare
  • Fix #2479: Add RedisChannel.UseImplicitAutoPattern (global) and RedisChannel.IsPattern (#2480 by @mgravell)
  • Fix #2479: Mark RedisChannel conversion operators as obsolete; add RedisChannel.Literal and RedisChannel.Pattern helpers (#2481 by @mgravell)
  • Fix #2449: Update Pipelines.Sockets.Unofficial to v2.2.8 to support native AOT (#2456 by @eerhardt)

Full Changelog: 2.6.111...2.6.116

2.6.111

03 May 01:31
0dfa58f
Compare
Choose a tag to compare
  • Fix #2426: Don't restrict multi-slot operations on Envoy proxy; let the proxy decide (#2428 by @mgravell)
  • Add: Support for User/Password in DefaultOptionsProvider to support token rotation scenarios (#2445 by @NickCraver)
  • Fix #2449: Resolve AOT trim warnings in TryGetAzureRoleInstanceIdNoThrow (#2451 by @eerhardt)
  • Adds: Support for HTTP/1.1 200 Connection established in HTTP Tunnel (#2448 by @flobernd)
  • Adds: Timeout duration to backlog timeout error messages (#2452 by @NickCraver)
  • Adds: DefaultOptionsProvider.LibraryName for specifying lib-name passed to CLIENT SETINFO in Redis 7.2+ (#2453 by @NickCraver)

New Contributors

Full Changelog: 2.6.104...2.6.111

2.6.104

30 Mar 18:49
129d59f
Compare
Choose a tag to compare
  • Fix #2412: Critical (but rare) GC bug that can lead to async tasks never completing if the multiplexer is not held by the consumer (#2408 by @mgravell)
  • Fix #2392: Dequeue all timed out messages from the backlog when not connected (including Fire+Forget) (#2397 by @kornelpal)
  • Fix #2400: Expose ChannelMessageQueue as IAsyncEnumerable<ChannelMessage> (#2402 by @mgravell)
  • Adds: Better error messages (over generic timeout) when commands are backlogged and unable to write to any connection (#2408 by @NickCraver)
  • Adds: Support for CLIENT SETINFO (lib name/version) during handshake; opt-out is via ConfigurationOptions; also support read of resp, lib-ver and lib-name via CLIENT LIST (#2414 by @mgravell)
  • Documentation: clarify the meaning of RedisValue.IsInteger re #2418 (#2420 by @mgravell)

New Contributors

Full Changelog: 2.6.96...2.6.104

2.6.96

21 Feb 12:24
ab757f7
Compare
Choose a tag to compare

Full Changelog: 2.6.90...2.6.96

2.6.90

10 Jan 21:56
b1fddf3
Compare
Choose a tag to compare
  • Adds: Support for EVAL_RO and EVALSHA_RO via IDatabase.ScriptEvaluateReadOnly/IDatabase.ScriptEvaluateReadOnlyAsync (#2168 by @shacharPash)
  • Fix #1458: Fixes a leak condition when a connection completes on the TCP phase but not the Redis handshake (#2238 by @NickCraver)
  • Internal: ServerSnapshot: Improve API and allow filtering with custom struct enumerator (#2337 by @mgravell)

2.5.27

10 Jan 21:44
cbc7cc9
Compare
Choose a tag to compare
2.5.27 Pre-release
Pre-release
  • Adds: a backlog/retry mechanism for commands issued while a connection isn't available (#1912 by @NickCraver)
    • Commands will be queued if a multiplexer isn't yet connected to a Redis server.
    • Commands will be queued if a connection is lost and then sent to the server when the connection is restored.
    • All commands queued will only remain in the backlog for the duration of the configured timeout.
    • To revert to previous behavior, a new ConfigurationOptions.BacklogPolicy is available - old behavior is configured via options.BacklogPolicy = BacklogPolicy.FailFast. This backlogs nothing and fails commands immediately if no connection is available.
  • Adds: Makes StreamEntry constructor public for better unit test experience (#1923 by @WeihanLi)
  • Fix: Integer overflow error (issue #1926) with 2GiB+ result payloads (#1928 by @mgravell)
  • Change: Update assumed redis versions to v2.8 or v4.0 in the Azure case (#1929 by @NickCraver)
  • Fix: Profiler showing EVAL instead EVALSHA (#1930 by @martinpotter)
  • Performance: Moved tiebreaker fetching in connections into the handshake phase (streamline + simplification) (#1931 by @NickCraver)
  • Stability: Fixed potential disposed object usage around Arenas (pulling in Piplines.Sockets.Unofficial#63 by @mgravell)
  • Adds: Thread pool work item stats to exception messages to help diagnose contention (#1964 by @NickCraver)
  • Fix/Performance: Overhauls pub/sub implementation for correctness (#1947 by @NickCraver)
    • Fixes a race in subscribing right after connected
    • Fixes a race in subscribing immediately before a publish
    • Fixes subscription routing on clusters (spreading instead of choosing 1 node)
    • More correctly reconnects subscriptions on connection failures, including to other endpoints
  • Adds "(vX.X.X)" version suffix to the default client ID so server-side CLIENT LIST can more easily see what's connected (#1985 by @NickCraver)
  • Fix: Properly including or excluding key names on some message failures (#1990 by @NickCraver)
  • Fix: Correct return of nil results in LPOP, RPOP, SRANDMEMBER, and SPOP (#1993 by @NickCraver)