Redis | |
---|---|
Tip de | Baza de date cheie-valoare |
Dezvoltator | Redis Labs [d] |
Scris in | C [1] |
Sistem de operare | multiplatformă |
Limbi de interfață | Engleză |
Prima editie | 10 mai 2009 |
ultima versiune |
|
Licență | licență BSD modificată [d] [3][4] |
Site-ul web | redis.io _ |
Fișiere media la Wikimedia Commons |
Redis (din engleză server remote dictionary ) este un sistem open source de gestionare a bazelor de date rezidente NoSQL care funcționează cu structuri de date cheie- valoare . Este folosit atât pentru baze de date, cât și pentru implementarea de cache-uri , brokeri de mesaje .
Este axat pe atingerea performanțelor maxime la operațiunile atomice (aproximativ 100 de mii de solicitări SET și GET pe secundă sunt declarate pe un server Linux entry-level [5] ). Scrise în C , interfețele de acces sunt construite pentru majoritatea limbajelor de programare majore.
În perioada 2010-2013, dezvoltarea sistemului a fost sponsorizată de VMware [6] , din mai 2013, după reorganizări în federația EMC -VMware, proiectul a fost transferat către Pivotal [7] . Din iunie 2015, principalul sponsor al proiectului este compania Redis Labs , special înființată pentru comercializarea Redis, principalul dezvoltator al produsului, Salvatore Sanfilippo , s-a mutat și el la acesta .
Stochează baza de date în RAM, echipată cu mecanisme de instantanee și jurnalizare pentru stocare persistentă (pe discuri, unități SSD). De asemenea, oferă operațiuni pentru implementarea mecanismului de mesagerie în modelul de publicare-abonare : cu acesta, aplicațiile pot crea canale, se pot abona la ele și pot pune mesaje în canale care vor fi primite de toți abonații (cum ar fi chat -ul IRC ). Suporta replicarea datelor de la nodurile master la mai multe slave ( de exemplu, replicarea master-slave ). De asemenea, acceptă tranzacțiile și procesarea în serie a comenzilor (executarea unui lot de comenzi, obținerea unui lot de rezultate).
Rulează pe majoritatea sistemelor POSIX , cum ar fi Linux , *BSD , Mac OS X fără suplimente, compania sponsor a proiectului acceptă sistemul pe Linux și Mac OS X. Nu există suport oficial pentru versiunile Windows , dar unele opțiuni sunt disponibile pentru furnizați munca lui Redis pe acest sistem [8] rapoarte despre munca lui Microsoft de a porta Redis la Windows.
Versiunea 2.6.0 a adăugat suport pentru Lua , care vă permite să rulați interogări pe server. Lua permite procesarea arbitrară să se facă atomic pe server și este destinat să fie utilizat atunci când același rezultat nu poate fi obținut folosind comenzi standard.
Printre limbajele de programare care au biblioteci pentru lucrul cu Redis sunt C , C++ , C# , Clojure , Lisp , Erlang , Java , JavaScript , Haskell , Lua , Perl , PHP , Python , Ruby , Scala , Go , Tcl , Rust , Swift , Nim .
Redis stochează toate datele sub forma unui dicționar , în care cheile sunt asociate cu valorile lor. Una dintre diferențele cheie dintre Redis și alte depozite de date este că valorile acestor chei nu sunt limitate la șiruri. Sunt acceptate următoarele tipuri de date abstracte: șiruri de caractere, liste , seturi , tabele hash , seturi ordonate.
Tipul de date al unei valori determină ce operațiuni (comenzi) îi sunt disponibile; acceptă astfel de operațiuni de nivel înalt precum unirea și diferența de seturi, sortarea mulțimilor.
Recuperarea datelor se realizează în două moduri diferite. Primul este mecanismul snapshot, în care datele sunt transferate asincron din RAM într-un fișier RDB (o extensie a depozitelor Redis). A doua modalitate (din versiunea 1.1) este un jurnal de scriere anticipată , disponibil doar pentru atașare, care stochează toate operațiunile care au modificat datele în memorie.
Sistemul acceptă replicarea de la nodurile master la nodurile slave . Datele de la orice server Redis pot fi replicate de un număr arbitrar de ori. Toate datele care se încadrează pe un nod Redis (master, ing. master ) vor cădea și pe alte noduri (slave, ing. slave ). Pentru a configura nodurile slave, puteți modifica opțiunea slaveof sau o comandă similară (nodurile pornite fără aceste opțiuni sunt noduri master).
Replicarea ajută la protejarea datelor prin copierea lor pe alte servere. Replicarea poate fi, de asemenea, utilizată pentru a îmbunătăți performanța, deoarece cererile de citire pot fi deservite de noduri slave ( scalarea în afara citirilor, nu a scrierilor). Nodurile replicate pot răspunde cu date ușor învechite, dar acest lucru este acceptabil pentru multe aplicații.
Sistemul de replicare Redis în sine nu acceptă failover-ul automat: dacă un nod master scade, trebuie să selectați manual un nou master dintre nodurile slave; dar există un sistem Redis Sentinel care asigură monitorizare și comutare automată.
Redis Sentinel este un sistem specializat de gestionare a gazdelor Redis care îndeplinește următoarele sarcini:
Redis Sentinel a fost inclus cu Redis începând cu versiunea 2.6 (Sentinel 1 este depreciat). Începând cu Redis 2.8, versiunea actuală este Sentinel 2.
Sentinel nu este recomandat să fie utilizat într-o singură instanță, un grup de noduri Sentinel menține un cvorum, datorită căruia rămâne operațional chiar și cu compoziția variabilă și absența temporară a unora dintre ele.
Sisteme de management al bazelor de date (DBMS) | |
---|---|
Client server | |
Motoare | |
Server de fișiere |