Redis

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 .

Design

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 .

Modele de date

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 și replicarea datelor

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

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.

Note

  1. Proiectul redis Open Source pe Open Hub: Pagina de limbi - 2006.
  2. Versiunea 7.0.5 - 2022.
  3. https://github.com/antirez/redis/blob/unstable/COPYING
  4. Proiectul redis Open Source pe Open Hub: Pagina de licențe - 2006.
  5. Cât de repede este Redis? . Preluat la 10 iulie 2016. Arhivat din original la 8 iulie 2016.
  6. VMware: noua casă Redis . Consultat la 30 decembrie 2010. Arhivat din original pe 22 martie 2010.
  7. Sponsorii Redis . Consultat la 2 aprilie 2015. Arhivat din original pe 25 iunie 2014.
  8. Introducere în Redis . Consultat la 15 mai 2012. Arhivat din original pe 7 mai 2012.

Link -uri