Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project>
<Project>
<PropertyGroup>
<VersionPrefix>2.0.0</VersionPrefix>
<Copyright>2014 - $([System.DateTime]::Now.Year) Stack Exchange, Inc.</Copyright>
Expand All @@ -12,7 +12,7 @@
<MSBuildWarningsAsMessages>NETSDK1069</MSBuildWarningsAsMessages>
<!-- SER001/SER002/SER003/SER006/SER007/SER008/SER010 retired (vector sets, Redis 8.4/8.6/8.8/8.10 features,
geo-redundant failover and maintenance notifications, no longer experimental); IDs reserved, see Experiments.cs -->
<NoWarn>$(NoWarn);NU5105;NU1507;SER004;SER005;SER009;SER012</NoWarn>
<NoWarn>$(NoWarn);NU5105;NU1507;SER004;SER005;SER009;SER011;SER012</NoWarn>
<PackageReleaseNotes>https://github.com/StackExchange/StackExchange.Redis/releases</PackageReleaseNotes>
<PackageProjectUrl>https://seredis.dev/</PackageProjectUrl>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
Expand Down
16 changes: 1 addition & 15 deletions docs/CommandCoverage.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ Statuses: `policy` (excluded by design), `not-applicable` (not meaningful for a
|---|---|---|---|
| `HTTL` | 7.4.0 | `not-applicable` | Second-precision twin of `HPTTL`; the library always reads `HPTTL`. |
| `STTL` | 8.12.0 | `not-applicable` | Second-precision twin of `SPTTL`, as `HTTL`. |
| `SEXPIRETIME` | 8.12.0 | `not-applicable` | Second-precision twin of `SPEXPIRETIME`, as `HTTL`; the library always reads `SPEXPIRETIME`. |
| `RESET` | 6.2.0 | `not-applicable` | Discards the per-connection state the multiplexer negotiated (`HELLO`, `CLIENT SETNAME`, `SELECT`, subscriptions). Dispose and reconnect instead. |
| `CLIENT REPLY` | 3.2.0 | `not-applicable` | Suppressing replies breaks the request/response pairing the multiplexer relies on; `CommandFlags.FireAndForget` is the client-side equivalent. |
| `CLIENT UNBLOCK` | 5.0.0 | `not-applicable` | Unblocks a client parked in a blocking command, which this library does not issue. |
Expand Down Expand Up @@ -156,21 +157,6 @@ PRs welcome; follow the `implement-resp-command` skill. Pre-release server featu

| Command | Since | Status | Notes |
|---|---|---|---|
| `BLESS` | 8.12.0 | `todo` | Key blessing (eviction protection). #3261, in progress on `marc/bless`. |
| `BLESS SET` | 8.12.0 | `todo` | As `BLESS`. |
| `BLESS GET` | 8.12.0 | `todo` | As `BLESS`. |
| `BLESS CLEAR` | 8.12.0 | `todo` | As `BLESS`. |
| `BLESS SCAN` | 8.12.0 | `todo` | As `BLESS`. |
| `SADDEX` | 8.12.0 | `todo` | Set member expiry; mirror the hash-field expiry surface (`HashFieldExpire` et al). |
| `SEXPIRE` | 8.12.0 | `todo` | Set member expiry. |
| `SEXPIREAT` | 8.12.0 | `todo` | Set member expiry. |
| `SEXPIRETIME` | 8.12.0 | `todo` | Set member expiry (mirrors `HEXPIRETIME`). |
| `SPERSIST` | 8.12.0 | `todo` | Set member expiry. |
| `SPEXPIRE` | 8.12.0 | `todo` | Set member expiry. |
| `SPEXPIREAT` | 8.12.0 | `todo` | Set member expiry. |
| `SPEXPIRETIME` | 8.12.0 | `todo` | Set member expiry. |
| `SPTTL` | 8.12.0 | `todo` | Set member expiry; the read path (see `STTL` above). |
| `BITRANGEINTARRAY` | 8.12.0 | `todo` | Bitmap to integer array; sits with the existing `BITFIELD`/`BITOP` surface. |
| `MEMORY USAGE` | 4.0.0 | `todo` | Per-key memory; `MEMORY DOCTOR`/`STATS`/`PURGE` are exposed, this one is the useful one for profiling. |
| `CLUSTER INFO` | 3.0.0 | `todo` | Cluster state summary (`cluster_state`, slot counts, epoch) on `IServer`, next to `ClusterNodes`. |
| `LATENCY HISTOGRAM` | 7.0.0 | `todo` | Per-command latency histograms on `IServer`, next to `LATENCY LATEST`/`HISTORY`. |
Expand Down
31 changes: 31 additions & 0 deletions docs/exp/SER011.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Redis 8.12 is currently in preview and may be subject to change.

New features in Redis 8.12:

- Bit enumeration (`BITRANGEINTARRAY`), surfaced as `IDatabase.StringBitPositions` / `StringBitPositionsAsync`:
the positions of the set (or clear) bits in a byte or bit range of a string or native bitmap, with optional paging
- Per-member set expiration (`SADDEX`, `SEXPIRE`/`SPEXPIRE`/`SEXPIREAT`/`SPEXPIREAT`, `SPTTL`,
`SPEXPIRETIME`, `SPERSIST`), surfaced as `IDatabase.SetAdd` (the `Expiration` overloads), `SetMemberExpire`,
`SetMemberGetTimeToLive`, `SetMemberGetExpireDateTime` and `SetMemberPersist` (and async
equivalents)
- Per-key eviction protection (`BLESS`), surfaced as `IDatabase.KeyBless`/`KeyUnbless`/`KeyBlessFlags` (and async
equivalents) with the `BlessFlags` enum, and `IServer.BlessedKeys`/`BlessedKeysAsync` for enumeration

The corresponding library features must also be considered subject to change:

1. Existing bindings may cease working correctly if the underlying server API changes.
2. Changes to the server API may require changes to the library API, manifesting in either/both of build-time
or run-time breaks.

While this seems *unlikely*, it must be considered a possibility. If you acknowledge this, you can suppress
this warning by adding the following to your `csproj` file:

```xml
<NoWarn>$(NoWarn);SER011</NoWarn>
```

or more granularly / locally in C#:

``` c#
#pragma warning disable SER011
```
Loading
Loading