Redis
 sql >> Database >  >> NoSQL >> Redis

Redis 6 può sfruttare le CPU multi-core?

Sulla base delle note di rilascio, immagino di sì. Ecco una piccola informazione da lì:

Nonostante la meritata reputazione di Redis per le prestazioni elevate, la sua architettura a thread singolo è stata controversa tra gli ingegneri che si sono chiesti se Redis potesse essere ancora più veloce. Redis 6 entra in una nuova era:mentre conserva un'interfaccia di accesso ai dati a thread singolo di base, l'I/O è ora threaded.

Delegando il tempo impiegato in lettura e scrittura sui socket I/O ad altri thread, il processo Redis può dedicare più cicli alla manipolazione, archiviazione e recupero dei dati, aumentando le prestazioni complessive. Questo miglioramento mantiene le caratteristiche transazionali delle versioni precedenti, quindi non devi ripensare le tue applicazioni per sfruttare le prestazioni migliorate. Allo stesso modo, il comando DEL a thread singolo di Redis ora può essere configurato per comportarsi come il comando UNLINK multi-thread disponibile dalla versione 4 di Redis.

Le prestazioni di una variabile locale sono quasi sempre imbattibili. Infine, anche un database con prestazioni elevate come Redis sarà molto più lento dell'accesso a qualcosa dallo stack o dall'heap. Redis 6 aggiunge una nuova tecnica per librerie client sofisticate per implementare un livello di memorizzazione nella cache lato client per archiviare un sottoinsieme di dati nel proprio processo. Questa implementazione è abbastanza intelligente da gestire più aggiornamenti agli stessi dati e mantenere i tuoi dati il ​​più sincronizzati possibile, pur mantenendo i vantaggi di Redis con la velocità delle variabili locali.

Puoi anche verificarlo/confrontarlo con il benchmark redis o il cablaggio memtier per il tuo profilo di istanza/carico di lavoro.