Sitelet https://github.com/StackExchange/StackExchange.Redis//releases
Skip to content

Releases: StackExchange/StackExchange.Redis

3.3.1

Choose a tag to compare

@mgravell mgravell released this 22 Sep 14:30
0a92ae4

What's Changed

  • Distinguish explicit and inferred TLS host names useful when cluster shards exposed using TLS/SNI by @sandeepkunusoth in #3250

New Contributors

  • When SslHost is specified, it is always used for SNI
  • Otherwise, for endpoints discovered at runtime:
    • If they are advertised with a host name, that host name is used for SNI
    • Otherwise the declared host name in the configuration is used

(previously, the declared host name in configuration would take precedence over an advertised host name if SslHost was not specified)

Full Changelog: 3.3.0...3.3.1

3.3.0

Choose a tag to compare

@mgravell mgravell released this 18 Sep 04:48
dc915bb

Features

The primary feature in 3.3.0 is "smart-client-handoffs" (aka "hitless"), whereby the client responds to server maintenance notifications on suitable environments. This feature is currently opt-in, and is planned to be automatic (opt-out) in most supported cases in an upcoming release.

Documentation

Opt in through configuration;

my-redis.internal.example.com:6379,maintNotifications=Auto

or in code:

options.MaintenanceNotifications = MaintenanceNotificationMode.Auto;

Changes

  • Server-native maintenance notifications: opt in, react, hand off, and recover when nothing is announced by @mgravell in #3191

Maintenance

  • Sort the public API tracking files, with a script that keeps them that way by @mgravell in #3245
  • Promote geo-redundant failover and the Redis 8.10 bindings out of preview by @mgravell in #3247
  • Retire SER001: vector sets are not experimental any more by @mgravell in #3246

Full Changelog: 3.2.15...3.3.0

3.2.15

Choose a tag to compare

@mgravell mgravell released this 17 Sep 15:04
8ce72d6

What's Changed

connection stability

  • A fully-down connection group throws RedisConnectionException (#3223) by @mgravell in #3224
  • SwitchPrimary retires the servers its rebuild drops by @mgravell in #3225
  • Make fallback discovery and keep-alive probes cluster-slot aware by @HarnageaGabriel in #3185
  • Fix Sentinel connection leak and AbortOnConnectFail=false handling by @HarnageaGabriel in #3187
  • Fix a vacuous cluster-probe assertion, and pin the first-handshake residue by @mgravell in #3226
  • A tracer redirect proves liveness, so it completes the handshake by @mgravell in #3227
  • Dial a cluster node before waiting for it to connect by @mgravell in #3238

fixes

  • Compare strings against blobs without decoding them into a string by @mgravell in #3228
    • Add RedisValue.EqualityComparer, with an opt-in binary reading by @mgravell in #3230
  • IServer.Execute supplies the default database rather than refusing the command by @mgravell in #3237

background / engineering

  • CI: resolve the NuGet cache key once, so the post step never walks the tree by @mgravell in #3231
  • Close the test-suite gaps from #3234 by @mgravell in #3235
  • Point the obsolete messages at 4.0, since 3.2 has shipped without them by @mgravell in #3244
  • Drop explicit Microsoft.SourceLink.GitHub reference by @mgravell in #3222

Full Changelog: 3.2.1...3.2.15

3.2.1

Choose a tag to compare

@mgravell mgravell released this 13 Sep 14:38
c1a317b

What's Changed

Full Changelog: 3.2.0...3.2.1

3.2.0

Choose a tag to compare

@mgravell mgravell released this 10 Sep 14:52
611e478

Highlights

  • .NET 6 dropped from TFMs; .NET 6 users will still get support via .NET Standard, but note that this does not include unix domain socket endpoint support
  • Add BITFIELD support
  • Add EVAL_RO / EVALSHA_RO support (gated by server-version)
  • New ExecuteResp and ScriptEvaluateResp APIs for performing ad-hoc commands much more efficiently
  • Stability and performance fixes
  • Cluster definition moved from CLUSTER NODES to CLUSTER SLOTS, improving life-cycle and identity

What's Changed

  • Route from CLUSTER SLOTS, and give endpoints a lifecycle by @mgravell in #3177
  • Return 0 from SortedSetRemove(Async) for an empty member array by @AbhinavMir in #3192
  • Tests: don't assume endpoint discovery is synchronous with connect by @mgravell in #3197
  • Fill in the neglected bitmap commands: BITFIELD, and an open-ended BITPOS by @mgravell in #3196
  • Tests: pin the pruning threshold deterministically, not end-to-end by @mgravell in #3198
  • add Dragonfly to ProductVariant by @pairbit in #3199
  • Never match responses on a connection whose write failed mid-flight by @mgravell in #3205
  • Drop net6.0 from TargetFrameworks by @mgravell in #3208
  • add ReadOnlyMemory and Lease for Lua and Execute by @pairbit in #3201
  • Sync path must wait for completion, not merely for a fault by @mgravell in #3212
  • For ROM-based APIs (mostly ScriptEvaluate/Execute): render request keys and values into one pooled buffer up front by @mgravell in #3211
  • Add ExecuteResp vs Execute allocation/time benchmark by @mgravell in #3215
  • Prevent response queue writes during connection teardown by @jetersen in #3200

Background work

New Contributors

Full Changelog: 3.1.31...3.2.0

3.1.31

Choose a tag to compare

@mgravell mgravell released this 21 Aug 10:31
90bbf1f

What's Changed

Features

  • Always issue HELLO when the server should understand it, not just for RESP3 by @mgravell in #3175
  • Fix two RESP3 connect failure modes: credential desync (#3172) and subscription poisoning on downgrade (#3154) by @mgravell in #3176
  • Add NOMKSTREAM/MINID support to XADD by @HarnageaGabriel in #3186
  • Add SER305/SER306: waiting for a queued transaction result by @mgravell in #3178
  • Add SER307 (sync over async), and a DedicatedThreads opt-in by @mgravell in #3179
  • Add SER308: flag the library's own Wait/WaitAll/TryWait helpers by @mgravell in #3180

Internal bits

  • Treat a write losing its connection as a closure, not an internal fault (#3167) by @mgravell in #3189
  • Preparation work for smart-client-handoffs by @mgravell in #3174
  • Support transport feeds by @mgravell in #3173
  • Transport seam: start reading before the handshake, and report a tunnel's refusal by @mgravell in #3188

Auxiliary bits

New Contributors

Full Changelog: 3.1.13...3.1.31

3.1.13

Choose a tag to compare

@mgravell mgravell released this 06 Aug 14:50
211cf06

What's Changed

New Contributors

Full Changelog: 3.1.11...3.1.13

3.1.11

Choose a tag to compare

@mgravell mgravell released this 06 Aug 09:41
0ee2082

What's Changed

Internal pieces

Full Changelog: 3.1.3...3.1.11

3.1.3

Choose a tag to compare

@mgravell mgravell released this 03 Aug 10:48
ad89608

This release should be considered a minor tweak to the much more significant 3.1.0 - please see the release notes for 3.1.0.

What's Changed

New Contributors

Full Changelog: 3.1.0...3.1.3

3.1.0

Choose a tag to compare

@mgravell mgravell released this 31 Jul 09:05
bf8fac8

What's Changed

This is a major feature, with extensive documentation.

Note that it currently has an [Experimental] marker, linking here, but: this is purely for an abundance of caution; it is considered released and fully supported.

(engineering)

  • CI: stop dpkg starting redis-server (Windows/WSL install hang on 8.10) by @mgravell in #3145
  • Make the previous "we will remove this in 3.0" features errors rather than warnings, and reframe as "...in 3.2"

available on NuGet

Full Changelog: 3.0.25...3.1.0