Redis è un database che fa parte del movimento NoSQL e rappresenta uno dei progetti più interessanti di questo nuovo panorama.
Forse non tutti sanno che il progetto è stato lanciato da un noto programmatore italiano, Salvatore ‘antirez’ Sanfilippo, che qualcuno di voi potrebbe già conoscere per altri suoi lavori come HPing o Lloogg. Lo abbiamo contattato affinché ci descrivesse meglio il funzionamento e le caratteristiche di Redis.
Presentati e prova ad illustrare Redis e la sua architettura per il pubblico che ancora non lo conosce.
Redis è un database un pò bizzarro, rispetto ai canoni a cui siamo abituati, per due motivi principali:
1) Tiene tutti i dati in memoria anche se persiste sul disco. In pratica il disco serve solo nel caso in cui il database viene fermato e riavviato, a leggere nuovamente tutto il data set in memoria. Ma tutti gli accessi in lettura e scrittura vengono gestiti principalmente in RAM. Questo permette ad un singolo server Redis che gira su una macchina Linux normalissima, su un solo core, di raggiungere l’interessante prestazione di 100 mila query al secondo. Cosa più interessante le query in lettura e scrittura prendono lo stesso tempo.
2) Le operazioni che supporta sono molto diverse da quelle di un database SQL. Non c’è il concetto di tabella, e non è un semplice database Key-Value a cui si associa ad una stringa (la chiave) un’altra stringa (il valore). Infatti i valori possono essere di altri tipi, come liste, insiemi, insiemi ordinati, o semplicemente stringhe.
L’idea di mantenere tutto il dataset in RAM aiuta a migliorare le prestazioni, ma cosa succede quando la memoria non è sufficiente?
Continua a leggere: Salvatore 'antirez' Sanfilippo, intervista allo sviluppatore di Redis