2 - BD Clau-Valor: Redis
Segurament de tots els tipus de Bases de Dades NoSQL existents, la de més fàcil comprensió és la Base de Dades Clau-Valor. En ella s'aniran guardant parelles clau-valor, és a dir, el nom d'una determinada propietat i el seu valor. La clau ha de ser única, és a dir, no es pot repetir ja que en cas contrari no es podria tornar a recuperar.
Per tant no hi ha definició de taules ni cap altra estructura; es van guardant parelles clau-valor i prou. En el moment de recuperar la informació veurem que podrem obtenir el contingut d'una clau, o el de més d'una al mateix temps.
L'exemple que veurem de Base de Dades Clau-Valor és Redis, molt famosa per a seua potència i eficiència.
La clau sempre és de tipus String, i com ja hem comentat no poden haver dues claus iguals. En canvi en Redis els valors poden ser de 5 tipus diferents:
- Cadenes de caràcters (String). Per exemple: nom_1 --> Albert
- Registres (Hashes) que seran claus que tindran subcamps (sub-claus). Per exemple: empleat_1 --> [ nom="Albert" , departament="10" , sou="1000.0" ]
- Llistes (Lists) que són conjunts ordenats de valors. Per exemple: llista_1 --> { "Primer" , "Segon" , "Tercer" }
- Conjunts (Sets) són conjunts desordenats de valors. No importa el seu ordre, i de fet serà impredictible l'ordre amb el qual els torna Redis. Per exemple: colors --> { "Blau" , "Verd" , "Roig" }
- Conjunts Ordenats (Sorted Sets). Ja veurem la diferència entre llistes i conjunts ordenats.
Algunes característiques de Redis són:
- És una arquitectura client-servidor
- És extraordinàriament eficient quan es pot carregar tota en memòria, encara que si no pot carregar-la també funcionarà de forma molt ràpida. I a més manté una sincronització constant a disc per a fer les dades persistents. Aquesta tasca la fa en segon pla, de manera que no afecta al servei.
- Per a poder suportar ratios de lectura molt alts fa una replicació master/slave, és a dir que pot haver més d'un servidor, i un és el que actua de master i els altres són rèpliques del primer. El slave rep una còpia inicial de la Base de Dades sencera. A mida que es van realitzant escriptures en el master, es van enviant a tots els slaves connectats. Els clients es poden connectar als distints servidors, bé siga al master o als slaves, sense haver de carregar sempre al master.
Llicenciat sota la Llicència Creative Commons Reconeixement SenseObraDerivada 4.0