Gli sviluppatori del progetto hanno recentemente rilasciato la nuova versione Redis 5.0, che introduce una nuova serie di API oltre al supporto per gli stream in-memory degli abstract type. Redis (Remote Dictionary Server) è un progetto open source per l'in-memory data structure che implementa un database key-value in-memory, supporta diversi tipi di strutture di dati astratti come stringhe, elenchi, mappe, insiemi ordinati, hyperloglog, bitmap, flussi e indici spaziali.
Questo database ha reso popolare l'idea di un sistema che può essere considerato allo stesso tempo store e cache, utilizzando un design in cui i dati vengono sempre modificati e letti dalla memoria principale del computer, ma anche archiviati su disco in un formato non adatto per l'accesso casuale, ma utile per ricostruire i dati in memoria una volta riavviato il sistema.
Allo stesso tempo Redis fornisce un modello di dati insolito rispetto agli RDBMS (Relational database management system), in cui i comandi dell'utente non descrivono una query che deve essere eseguita dal motore del database, ma operazioni specifiche su tipi di dati astratti, quindi il dato deve essere archiviato in un modo che sia adatto per un recupero rapido, senza l'ausilio di un sistema di database sotto forma di indici secondari, aggregazioni o altre caratteristiche comuni degli RDBMS tradizionali.
L'implementazione di Redis fa un uso importante di Fork (system_call), al fine di duplicare il processo contenente i dati in modo che il processo padre continui a servire i client mentre il processo figlio crea una copia dei dati sul disco.
Redis lavora con gli stream dei dati, concettualmente gli stream sono un tipo di dati astratti rappresentati in memoria, che implementano operazioni più potenti per superare i limiti del file di registro. Gli stream offrono una serie di operazioni di blocco per consentire ai client di gestire al meglio il flusso di dati in arrivo. Inoltre, gli utenti possono anche operare in collaborazione, magari andando a lavorare con porzioni diverse dello stesso stream.
Redis 5.0 dispone di nuove API per l'SDK che aggiungono varie funzionalità come ad esempio: i timer, la creazione dei timer periodici, il blocco dei timer e per i Cluster e anche la message-bus abstraction per i sistemi distribuiti. Queste API costituiscono il fondamento del nuovo modulo del sistema di Disque. In questa nuova versione i file RDB potranno salvare le informazioni di LFU (least-frequently used) ed LRU (least-recently used).
Su Redis 5.0 il cluster manager è stato convertito in C per assicurare migliori performance, precedentemente era scritto in Ruby, ed è stata implementata la HyperLogLog data structure con nuovi algoritmi che garantiranno un'accuratezza maggiore.
Via Redis