Releases: StackExchange/StackExchange.Redis
Releases · StackExchange/StackExchange.Redis
2.6.122
- 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
underPOOL
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 inDefaultOptionsProvider
) (#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
- Fix #2479: Add
RedisChannel.UseImplicitAutoPattern
(global) andRedisChannel.IsPattern
(#2480 by @mgravell) - Fix #2479: Mark
RedisChannel
conversion operators as obsolete; addRedisChannel.Literal
andRedisChannel.Pattern
helpers (#2481 by @mgravell) - Fix #2449: Update
Pipelines.Sockets.Unofficial
tov2.2.8
to support native AOT (#2456 by @eerhardt)
Full Changelog: 2.6.111...2.6.116
2.6.111
- Fix #2426: Don't restrict multi-slot operations on Envoy proxy; let the proxy decide (#2428 by @mgravell)
- Add: Support for
User
/Password
inDefaultOptionsProvider
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 toCLIENT SETINFO
in Redis 7.2+ (#2453 by @NickCraver)
New Contributors
Full Changelog: 2.6.104...2.6.111
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