Releases: StackExchange/StackExchange.Redis
Releases · StackExchange/StackExchange.Redis
2.1.30
2.1.0
- Fix: Ensure active-message is cleared (#1374 by @hamish-omny)
- Adds: Sentinel support (#1067 by @shadim, #692 by @lexxdark)
- Adds:
IAsyncEnumerable<T>
scanning APIs now supported (#1087 by @mgravell) - Adds: New API for use with misbehaving sync-contexts (more info)
- Adds:
TOUCH
support (#1291 by @gkorland) - Adds:
Condition
API (transactions) now supportsSortedSetLengthEqual
(#1332 by @phosphene47) - Adds:
SocketManager
is now more configurable (#1115 by @naile) - Adds: NRediSearch updated in line with JRediSearch (#1267 by @tombatron, #1199 by @oruchreis)
- Adds: Support for
CheckCertificatRevocation
configuration (#1234 by @BLun78 and @V912736) - Adds: More details about exceptions (#1190 by @marafiq)
- Adds: Updated
StreamCreateConsumerGroup
methods to use theMKSTREAM
option (#1141 by @ttingen) - Adds: Support for NOACK in the StreamReadGroup methods (#1154 by @ttingen)
- Adds: Event-args now mockable (#1326 by @n1l)
- Fix: No-op when adding 0 values to a set (#1283 by @omeaart)
- Adds: Support for
LATENCY
andMEMORY
(#1204 by @mgravell) - Adds: Support for
HSTRLEN
(#1241 by @eitanhs) - Adds:
GeoRadiusResult
is now mockable (#1175 by @firenero) - Fix: Various documentation fixes (#1162 by @SnakyBeaky, #1135 by @ttingen, #1203 by @caveman-dick, #1240 by @Excelan, #1245 by @francoance, #1159 by @odyth, #1311 by @DillonAd, #1339 by @vp89, #1336 by @ERGeorgiev)
- Fix: Rare race-condition around exception data (#1342 by @AdamOutcalt)
- Fix:
ScriptEvaluateAsync
keyspace isolation (#1377 by @gliljas) - Fix: F# compatibility enhancements (#1386 by @NickCraver)
- Fix: Improved
ScriptResult
null support (#1392 by @mgravell) - Fix: Error with DNS resolution breaking endpoint iterator (#1393 by @mgravell)
- Tests: Better docker support for tests (#1389 by @ejsmith, #1391 by @NickCraver)
- Tests: General test improvements (#1183 by @mtreske, #1385 by @NickCraver, #1384 by @NickCraver)
2.0.601
- Adds: Tracking for current and next messages to help with debugging timeout issues - helpful in cases of large pipeline blockers
2.0.593
2.0.588
- Stability/Performance: Resolve intermittent stall in the write-lock that could lead to unexpected timeouts even when at low/reasonable (but concurrent) load
2.0.571
- Performance: Use new arena allocation API to avoid
RawResult[]
overhead - Performance: Massively simplified how
ResultBox<T>
is implemented, in particular to reduceTaskCompletionSource<T>
allocations - Performance: Fix sync-over-async issue with async call paths, and fix the SemaphoreSlim problems that this uncovered
- Performance: Reintroduce the unsent backlog queue, in particular to improve async performance
- Performance: Simplify how completions are reactivated, so that external callers use their originating pool, not the dedicated IO pools (prevent thread stealing)
- Fix: Update
Pipelines.Sockets.Unofficial
to prevent issue with incorrect buffer re-use in corner-case - Fix:
KeyDeleteAsync
could, in some cases, always useDEL
(instead ofUNLINK
) - Fix: Last unanswered write time was incorrect
- Change: Use higher
Pipe
thresholds when sending
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