Skip to content

Releases: StackExchange/StackExchange.Redis

2.0.519

10 Jan 21:04
Compare
Choose a tag to compare

2.0.513

10 Jan 21:03
Compare
Choose a tag to compare
  • Fix #961: fix assembly binding redirect problems; IMPORTANT: this drops to an older System.Buffers version - if you have manually added redirects for 4.0.3.0, you may need to manually update to 4.0.2.0 (or remove completely)
  • Fix #962: Avoid NRE in edge-case when fetching bridge

2.0.505

10 Jan 21:02
4949fc4
Compare
Choose a tag to compare
  • Fix #943: Ensure transaction inner tasks are completed prior to completing the outer transaction task
  • Fix #946: Reinstate missing TryParse methods on RedisValue
  • Fix #940: Off-by-one on pre-boxed integer cache (NRediSearch)

2.0.495

10 Jan 21:02
Compare
Choose a tag to compare

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) and StackExchange.Redis.StrongName (strong-named), we are now
    only releasing StackExchange.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 -
    the Subscribe method has a new overload without a handler parameter which returns a ChannelMessageQueue, which provides async 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) and operator support for Memory<byte> and ReadOnlyMemory<byte>; and IDatabase.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 on IServer
  • 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