Strutture dati Redis: Hash, Sorted Set e quanto costano
Un hash passa da 136 a 336 byte e centomila unici stanno in 14.392 byte: Hash, Sorted Set e HyperLogLog misurati, e perché MEMORY USAGE è una stima.
Dieci articoli su Redis provati su istanze vere: strutture dati, Pub/Sub e Streams, Lua, persistenza, maxmemory, cache, lock, guasti e ricerca HNSW.
Questa serie raccoglie 10 articoli (circa 182 minuti di lettura totale), pensati per un livello Intermedio. Gli argomenti principali trattati sono Redis, Redis Sorted Set, Redis Pub/Sub, Redis persistenza.
Un hash passa da 136 a 336 byte e centomila unici stanno in 14.392 byte: Hash, Sorted Set e HyperLogLog misurati, e perché MEMORY USAGE è una stima.
Con Pub/Sub un messaggio senza lettore sparisce, con Streams resta in attesa: le due strategie provate su Redis 8.0.5 e 7.4.7, con uscite vere.
GET poi DEL cancella il lock di un altro; uno script Lua no. EVAL, EVALSHA, WATCH e il costo di BUSY, misurati su Redis 8.0.5 e 7.4.7.
Stessa configurazione e due modi di fermare Redis: con kill -9 restano zero chiavi su mille, con uno spegnimento ordinato tutte. Misure su 8.0.5 e 7.4.7.
Un'istanza piena rifiuta le scritture o butta via chiavi. Quale politica cancella i dati che non puoi ricostruire, misurato su Redis 8.0.5 e 7.4.7.
Dopo un rilascio la cache serve dati del codice vecchio. Il prefisso di versione lo evita senza FLUSHALL: quanto costa in memoria, misurato su Redis 8.0.5.
Un DEL non condizionato cancella il lock di chi è subentrato dopo la scadenza. Il difetto riprodotto con redis-cli, la cura con token e Lua e il suo limite.
Revoca JWT, idempotenza, lock, token e cache hanno una risposta diversa quando Redis non risponde. La tabella dal codice e il timeout di 2 secondi misurato.
Il client misurava 238 ms per comando, il server 1,28 microsecondi: come si misurano latenza, comandi lenti e byte per chiave su Redis 8.0.5 e 7.4.7.
Con i default l'HNSW di Redis perde dei vicini veri: recall 0,94 su 300 ricerche reali. Come misurarlo con un FLAT e cosa cambia con EF_RUNTIME.