Releases: StackExchange/StackExchange.Redis
Releases · StackExchange/StackExchange.Redis
2.6.104
- 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
asIAsyncEnumerable<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 viaConfigurationOptions
; also support read ofresp
,lib-ver
andlib-name
viaCLIENT LIST
(#2414 by @mgravell) - Documentation: clarify the meaning of
RedisValue.IsInteger
re #2418 (#2420 by @mgravell)
New Contributors
- @SonnyRR made their first contribution in #2410
- @kornelpal made their first contribution in #2397
Full Changelog: 2.6.96...2.6.104
2.6.96
- Fix #2350: Properly parse lua script paramters in all cultures (#2351 by @NickCraver)
- Fix #2362: Set
RedisConnectionException.FailureType
toAuthenticationFailure
on all authentication scenarios for better handling (#2367 by @NickCraver) - Fix #2368: Support
RedisValue.Length()
for all storage types (#2370 by @mgravell) - Fix #2376: Avoid a (rare) deadlock scenario (#2378 by @mgravell)
Full Changelog: 2.6.90...2.6.96
2.6.90
- Adds: Support for
EVAL_RO
andEVALSHA_RO
viaIDatabase.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
- 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 viaoptions.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
insteadEVALSHA
(#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
, andSPOP
(#1993 by @NickCraver)
2.2.88
- 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
- Fix: Stability in new sentinel APIs
- Fix #1407: Include
SslProtocolos
inConfigurationOptions.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 onConfigurationOptions
- Build: Enable deterministic builds (note: this failed; fixed in 2.1.30)
2.0.600
- Adds:
ulong
support toRedisValue
andRedisResult
(#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
- 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 (newClusterNode.IsFail
property) forCLUSTER NODES
and exposefail?
as a property (IsPossiblyFail
) as well (#2288 by @NickCraver) - Adds:
IConnectionMultiplexer.ServerMaintenanceEvent
(was onConnectionMultiplexer
but not the interface) (#2306 by @NickCraver) - Adds: To timeout messages, additional debug information:
Sync-Ops
(synchronous operations),Async-Ops
(asynchronous operations), andServer-Connected-Seconds
(how long the connection in question has been connected, or"n/a"
) (#2300 by @NickCraver)
2.6.80
- Adds:
last-in
andcur-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
- Fix:
MOVED
withNoRedirect
(and other non-reachable errors) should respect theIncludeDetailInExceptions
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)