The historical fixture assigns four equal slot ranges to A, B, A and C. Wrong-node access returns MOVED. Tagged keys share a slot, but same-primary different-slot MSET fails unchanged. Three primaries without replicas cannot replace a failed primary.

Redis Cluster splits keys across slots

Redis Cluster separates key placement from machine identity. A key maps to one of 16,384 fixed hash slots; cluster metadata maps those slots to primaries and their replicas. Adding a machine does not change the slot hash function. Operators redistribute slots, while clients discover the current topology and react to routing changes. ...

November 26, 2027 · 7 min · XB Field Notes
A manifest references the RDB-format AOF base and later incremental AOF. In the source fixture, a completed rewrite at counter 4 plus a later increment restores counter 5 after process restart.

Redis append-only log trades speed for durability

An append-only file records Redis mutations for recovery, but choosing AOF is not the same as promising that no acknowledged write can ever disappear. Durability depends on the fsync policy, effective configuration, storage behavior, and which failure you mean. Start with a recovery objective rather than the reassuring word “log.” ...

November 17, 2027 · 6 min · XB Field Notes
The source stock example rejects a watched stale queue after a rival changes stock from 2 to 1; the marker remains absent. A new watched attempt reads 1 and commits 0 with the marker. MULTI/EXEC alone cannot repair an earlier stale read.

WATCH protects Redis read-modify-write decisions

MULTI/EXEC prevents another client’s commands from interleaving while the queued commands execute. That alone does not protect a value read earlier in the application. If two buyers read the same stock count and later write their own calculated value, wrapping each SET in a transaction can still lose an update. ...

July 22, 2027 · 7 min · XB Field Notes
Billing and analytics point to different positions in one stream, while pending entries remain a separate state from either cursor.

Delivery is not completion: schematic.

Redis stream groups track delivery positions

A Redis stream does not automatically track a separate cursor for every connection. Ordinary XREAD uses a position supplied by the application. A consumer group instead owns a server-side last-delivered position plus pending delivery records. Confusing those two forms of progress can make a restart skip unfinished work or replay effects already completed. ...

July 13, 2027 · 7 min · XB Field Notes
A key with an absolute deadline branches into two command paths. GET, INCR and SET KEEPTTL keep that same deadline; plain SET clears it and leaves TTL -1. Reads do not renew the deadline.

Redis TTL lets every key carry its own clock

Redis expiration answers when a key should stop being available, not how much memory the server may consume. A deadline belongs to the key, and later commands can preserve, replace, or remove it. Reliable TTL use therefore requires testing update paths as well as the initial insertion. A successful write alone says nothing about the deadline remaining afterward. ...

June 29, 2027 · 6 min · XB Field Notes
Two independent historical startup cases recover different counter values: RDB-only returns the saved snapshot value 1; AOF-enabled returns the later value 2. Standalone RDB and an independent log are not automatically merged. Process termination was tested; power loss was not.

Two ways Redis keeps data safe

RDB and AOF preserve different representations of Redis state. Choosing between them starts with two questions: how much recent data may be lost, and how long recovery may take? A persistence setting alone answers neither. You need a recoverable artifact, an understood acknowledgment policy, and a restore procedure tested against actual values. ...

June 15, 2027 · 6 min · XB Field Notes
Common-scale bars compare historical approximate libc observations: allocations about 16.7 MiB after loading and 1.04 MiB after deleting all keys, with RSS about 20.8 MiB after clearing. The final ratio is about 20. These observations are not targets or proof of a leak.

Redis memory ratios need allocation context

A Redis process can keep a substantial resident footprint after application keys are deleted. That observation deserves explanation, but it does not by itself prove a leak or allocator fragmentation. The useful question is which bytes remain allocated, which pages remain resident, and whether that footprint threatens the actual capacity budget. ...

June 3, 2027 · 6 min · XB Field Notes
SCAN MATCH fans a prefix-plus-star pattern out to example sibling keys. DEL points to only the exact name with the literal star.

Redis keys read well with clear naming

Redis keys are binary-safe names in a flat keyspace, not filesystem paths or schema declarations. Colons are a useful convention for separating ownership, environment, entity, and identifier. A name such as cart:prod:string:42 can explain intent, but Redis does not interpret those labels as a type check or access restriction. ...

June 1, 2027 · 6 min · XB Field Notes