Skip to content

Releases: StackExchange/StackExchange.Redis

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)

2.2.88

10 Jan 21:41
3b8e97a
Compare
Choose a tag to compare
  • Change: Connection backoff default is now exponential instead of linear (#1896 by @lolodi)
  • Adds: Support for NodeMaintenanceScaleComplete event (handles Redis cluster scaling) (#1902 by @NickCraver)

2.1.28

10 Jan 21:18
Compare
Choose a tag to compare
  • Fix: Stability in new sentinel APIs
  • Fix #1407: Include SslProtocolos in ConfigurationOptions.ToString() (#1408 by @vksampath and Sampath Vuyyuru)
  • Fix: Clarify messaging around disconnected multiplexers (#1396 by @NickCraver)
  • Change: Tweak methods of new sentinel API (this is technically a breaking change, but since this is a new API that was pulled quickly, we consider this to be acceptable)
  • Adds: New thread SocketManager mode (opt-in) to always use the regular thread-pool instead of the dedicated pool
  • Adds: Improved counters in/around error messages
  • Adds: New User property on ConfigurationOptions
  • Build: Enable deterministic builds (note: this failed; fixed in 2.1.30)

2.0.600

10 Jan 21:08
Compare
Choose a tag to compare
  • Adds: ulong support to RedisValue and RedisResult (#1104 by @mgravell)
  • Fix: Remove odd equality: "-" != 0 (we do, however, still allow "-0", as that is at least semantically valid, and is logically == 0) (related to #1103)
  • Performance: Rework how pub/sub queues are stored - reduces delegate overheads (related to #1101)
  • Fix #1108: Ensure that we don't try appending log data to the TextWriter once we've returned from a method that accepted one

2.6.86

10 Jan 21:56
02c29ef
Compare
Choose a tag to compare
  • Fix #1520 & #1660: When MOVED is encountered from a cluster, a reconfigure will happen proactively to react to cluster changes ASAP (#2286 by @NickCraver)
  • Fix #2249: Properly handle a fail state (new ClusterNode.IsFail property) for CLUSTER NODES and expose fail? as a property (IsPossiblyFail) as well (#2288 by @NickCraver)
  • Adds: IConnectionMultiplexer.ServerMaintenanceEvent (was on ConnectionMultiplexer but not the interface) (#2306 by @NickCraver)
  • Adds: To timeout messages, additional debug information: Sync-Ops (synchronous operations), Async-Ops (asynchronous operations), and Server-Connected-Seconds (how long the connection in question has been connected, or "n/a") (#2300 by @NickCraver)

2.6.80

10 Jan 21:55
5263608
Compare
Choose a tag to compare
  • Adds: last-in and cur-in (bytes) to timeout exceptions to help identify timeouts that were just-behind another large payload off the wire (#2276 by @NickCraver)
  • Adds: general-purpose tunnel support, with HTTP proxy "connect" support included (#2274 by @mgravell)
  • Removes: Package dependency (System.Diagnostics.PerformanceCounter) (#2285 by @NickCraver)

2.6.70

10 Jan 21:54
85c1b2b
Compare
Choose a tag to compare
  • Fix: MOVED with NoRedirect (and other non-reachable errors) should respect the IncludeDetailInExceptions setting (#2267 by @mgravell)
  • Fix #2251 & #2265: Cluster endpoint connections weren't proactively connecting subscriptions in all cases and taking the full connection timeout to complete as a result (#2268 by @iteplov)