Releases: StackExchange/StackExchange.Redis
Releases · StackExchange/StackExchange.Redis
2.0.519
- Fix #1007: Adapt to late changes in the RC streams API (#983 by mgravell)
- Documentation fixes (#997 by @MerelyRBLX), #1005 by @zBrianW)
- Build: Switch to SDK 2.1.500
2.0.513
2.0.505
2.0.495
2.0 is a large - and breaking - change. The key focus of this release is stability and reliability.
- Hard Break: The package identity has changed; instead of
StackExchange.Redis
(not strong-named) andStackExchange.Redis.StrongName
(strong-named), we are now
only releasingStackExchange.Redis
(strong-named). This is a binary breaking change that requires consumers to be re-compiled; it cannot be applied via binding-redirects - Hard Break: The platform targets have been rationalized - supported targets are .NETStandard 2.0 (and above), .NETFramework 4.6.1 (and above), and .NETFramework 4.7.2 (and above)
(note - the last two are mainly due to assembly binding problems) - Hard Break: The profiling API has been overhauled and simplified; full documentation is provided here
- Soft Break: The
PreserveAsyncOrder
behaviour of the pub/sub API has been deprecated; a new API has been provided for scenarios that require in-order pub/sub handling -
theSubscribe
method has a new overload without a handler parameter which returns aChannelMessageQueue
, which providesasync
ordered access to messages) - Internal: The network architecture has moved to use
System.IO.Pipelines
; this has allowed us to simplify and unify a lot of the network code, and in particular fix a lot of problems relating to how the library worked with TLS and/or .NETStandard - Change: As a result of the
System.IO.Pipelines
change, the error-reporting on timeouts is now much simpler and clearer; the timeouts documentation has been updated - Removed: The
HighPriority
(queue-jumping) flag is now deprecated - Internal: Most buffers internally now make use of pooled memory;
RedisValue
no longer preemptively allocates buffers - Internal: Added new custom thread-pool for handling async continuations to avoid thread-pool starvation issues
- Internal: All IL generation has been removed; the library should now work on platforms that do not allow runtime-emit
- Adds: asynchronous operations now have full support for reporting timeouts
- Adds: new APIs now exist to work with pooled memory without allocations -
RedisValue.CreateFrom(MemoryStream)
andoperator
support forMemory<byte>
andReadOnlyMemory<byte>
; andIDatabase.StringGetLease[Async](...)
,IDatabase.HashGetLease[Async](...)
,Lease<byte>.AsStream()
) - Adds: "streams" support (thanks to ttingen for their contribution)
- Adds: Various missing commands / overloads have been added;
Execute[Async]
for additional commands is now available onIServer
- Fix: A lot of general bugs and issues have been resolved
- Break:
RedisValue.TryParse
was accidentally omitted in the overhaul; this has been rectified and will be available in the next build
A more complete list of issues addressed can be seen in this tracking issue