Skip to content
seredisPublic

About

Geo failover/failback demo for SE.Redis connection groups (port of the redis-py example)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

SE.Redis demos

Self-contained, runnable demos for StackExchange.Redis features. Each folder has its own README, its own docker-compose.yml for the Redis servers it needs, and pins the library version it targets, so demos can sit on different releases.

Demo Shows Library
arrays/ Native arrays in Redis 8.8 via IDatabase.Array*: a 48-slot telemetry ring where the server owns the cursor and the wrap-around (ARRING/ARSEEK/ARNEXT), AROP aggregates and ARGREP regex search run where the data lives, plus ARSET retcons, ARLASTITEMS recency and ARINFO slice internals. Interactive TUI. 3.4.x
caching/ Client-side caching in v4: the tracking modes (CLIENT TRACKING per-key and broadcast, keyspace notifications, none), admission on first or repeated miss, the policies (TimeToLive, RefreshAfter, grace), manual Invalidate, GetClientCache() counters, and the hit rate measured on the server. Interactive TUI. 4.0 alpha
compacthash/ Compact hashes + HIMPORT in Redis 8.10 via HashImport: the same 14-field orders dataset loaded plain vs through a shared-schema template at 100/5k/50k keys — 43% less hash memory and ~2.5× the load throughput at scale, with the template counters, encodings and MEMORY USAGE fair-share all measured on the server. Scripted console run. 3.4.x
extending/ Extending the client in v4 as an external module author (think JSON.*/FT.*), played out on real commands: the ad-hoc ExecuteResp, the interpolated db.Context.SendAsync<T>($"…") form, a command surface of your own ([Resp], command groups), WithKeyPrefix and the key-vs-value trap, Compose for run-time arguments, a custom reply handler over RespReader under both RESP2 and RESP3, and retry categories (and the client-side caching they unlock). Scripted console run. 4.0 alpha
geofailover/ Connection groups: weighted members, health checks, circuit breaker, failover and failback, per-command retry categories. A scripted console run and an interactive TUI. 3.4.x
hitless/ Smart client handoffs (hitless upgrades): maintenance notifications over RESP3 (MOVING, MIGRATING/MIGRATED, FAILING_OVER/FAILED_OVER, slot migration), the modes (Auto, Enabled, Disabled), asking MOVING for the successor, relaxed timeouts, and the traffic a disruption costs with and without them. Interactive TUI. Bring your own Redis Enterprise cluster: no Docker setup. 3.4.x
hotkeys/ HOTKEYS in Redis 8.6: server-side per-key CPU and network profiling via IServer.HotKeysStart/Get/Stop/Reset — a live "top for keys" over a Zipf workload where hot-by-volume, hot-by-CPU (SINTERCARD) and hot-by-bytes (LRANGE) are different keys; spikes, sampling ratios, capture sessions. Interactive TUI. 3.4.x
hybridcache/ Active vs passive cache invalidation: the in-box HybridCache over IDistributedCache-on-redis against StackExchange.Redis.HybridCache on client-side caching — the same application code, two "web servers" sharing one redis, measuring how long server B keeps serving a value server A already changed (SetAsync, RemoveAsync, RemoveByTagAsync, and the tag-memo flaw when the invalidator goes quiet). A scripted console run and an interactive TUI with live per-server price charts and in-app implementation switching. 4.0 alpha + HybridCache 0.1.29-alpha
roaring/ Compressed (roaring) bitmaps in Redis 8.12, measured against classic string bitmaps on an 8.10 baseline: MEMORY USAGE across population shapes (~100× sparse, ~5,000× clustered, parity on noise), server-side µs/call for BITCOUNT/BITOP/SETBIT from INFO commandstats, the transparent encoding (same IDatabase calls throughout), config-driven live migration, and the one new user-facing command, BITRANGEINTARRAY. Scripted console run; the 8.12 RC builds from source. 4.0 alpha
setexpiry/ Set-member expiration in Redis 8.12 (SADDEX, SEXPIRE, SPTTL, SPERSIST) as a live presence board: per-member TTL countdowns, the reply codes, the GT/MNX conditions (including MNX's all-or-nothing batch veto), and 8.12's new subkey notification channels, where __subkeyevent@0__:sexpired names the member that lapsed. No client API exists yet, so the whole surface runs through the v4 context machinery. Interactive TUI; the 8.12 RC builds from source. 4.0 alpha
vectorsets/ Vector sets in Redis 8.0 via IDatabase.VectorSet*: nearest-neighbour image matching over MNIST digits rendered in the terminal — the query and its matches as images, recall measured against exact-f32 ground truth, NOQUANT/Q8/BIN as three copies of one corpus (18.4/7.2/3.9MB), FILTER expressions, exact vs HNSW. Interactive TUI. 3.4.x

All demos need the .NET 10 SDK. The caching, geo failover, hybridcache, roaring, extending and set-expiry demos also need Docker with the compose plugin; the hitless demo needs a Redis Enterprise cluster instead (see its README).

About

Geo failover/failback demo for SE.Redis connection groups (port of the redis-py example)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages