Redis

Redis
Tyyppi Avainarvotietokanta
Kehittäjä Redis Labs [d]
Sisään kirjoitettu C [1]
Käyttöjärjestelmä cross-platform
Käyttöliittymäkielet Englanti
Ensimmäinen painos 10. toukokuuta 2009
uusin versio
Lisenssi muutettu BSD-lisenssi [d] [3][4]
Verkkosivusto redis.io
 Mediatiedostot Wikimedia Commonsissa

Redis ( englanninkielisestä  etäsanakirjapalvelimesta ) on avoimen lähdekoodin NoSQL - tietokannan hallintajärjestelmä, joka toimii avainarvotietorakenteiden kanssa . Sitä käytetään sekä tietokantoihin että välimuistien , viestivälittäjien toteuttamiseen .

Se keskittyy maksimaalisen suorituskyvyn saavuttamiseen atomioperaatioissa (noin 100 tuhatta SET- ja GET - pyyntöä sekunnissa ilmoitetaan lähtötason Linux -palvelimella [5] ). C -kielellä kirjoitettu käyttöliittymä on rakennettu useimmille tärkeimmille ohjelmointikielille.

Vuosina 2010-2013 järjestelmän kehitystä sponsoroi VMware [6] , toukokuusta 2013 lähtien EMC -VMware -liitossa tehtyjen uudelleenjärjestelyjen jälkeen projekti siirtyi Pivotalille [7] . Kesäkuusta 2015 lähtien projektin pääsponsorina on nimenomaan Rediksen kaupallistamiseen perustettu yritys Redis Labs , johon muutti myös tuotteen pääkehittäjä Salvatore Sanfilippo .

Suunnittelu

Tallentaa tietokannan RAM-muistiin, joka on varustettu tilannekuva- ja päiväkirjamekanismilla jatkuvaa tallennusta varten (levyille, SSD-asemille). Se tarjoaa myös toimintoja viestintämekanismin toteuttamiseksi julkaisu-tilausmallissa : sen avulla sovellukset voivat luoda kanavia, tilata niitä ja laittaa viestejä kanaville, jotka kaikki tilaajat vastaanottavat (kuten IRC - chat). Tukee tietojen replikointia isäntäsolmuista useisiin orjeihin ( eng.  master-slave replikointi ). Se tukee myös tapahtumia ja komentojen eräkäsittelyä (komentoerän suorittaminen, tuloserän saaminen).

Toimii useimmissa POSIX - järjestelmissä, kuten Linux , *BSD , Mac OS X ilman lisäosia, projektin sponsoriyritys tukee järjestelmää Linuxissa ja Mac OS X:ssä. Windows -versioille ei ole virallista tukea , mutta joitain vaihtoehtoja on saatavana tarjota Redisin työtä tässä järjestelmässä [8] raportoi Microsoftin työstä Redisin siirtämisessä Windowsiin.

Versio 2.6.0 lisäsi tuen Lualle , jonka avulla voit suorittaa kyselyitä palvelimella. Lua sallii mielivaltaisen käsittelyn atomimaisesti palvelimella ja on tarkoitettu käytettäväksi silloin, kun samaa tulosta ei voida saavuttaa vakiokomennoilla.

Ohjelmointikieliä, joilla on kirjastoja Redis-työskentelyä varten, ovat C , C++ , C# , Clojure , Lisp , Erlang , Java , JavaScript , Haskell , Lua , Perl , PHP , Python , Ruby , Scala , Go , Tcl , Rust , Swift , Nim .

Tietomallit

Redis tallentaa kaikki tiedot sanakirjan muodossa , jossa avaimet on liitetty niiden arvoihin. Yksi tärkeimmistä eroista Redisin ja muiden tietosäilöiden välillä on, että näiden avainten arvot eivät rajoitu merkkijonoihin. Seuraavia abstrakteja tietotyyppejä tuetaan: merkkijonot, luettelot , joukot , hash-taulukot , järjestetyt joukot.

Arvon tietotyyppi määrittää, mitkä toiminnot (komennot) ovat käytettävissä; tukee sellaisia ​​korkean tason operaatioita kuin joukkojen yhdistäminen ja erotus, joukkojen lajittelu.

Tietojen palautus ja replikointi

Tietojen palautus tapahtuu kahdella eri tavalla. Ensimmäinen on tilannekuvamekanismi, jossa tiedot siirretään asynkronisesti RAM-muistista RDB -tiedostoon (Redis-vedosten laajennus). Toinen tapa (versiosta 1.1 lähtien) on eteenpäinkirjoitettava loki , joka on käytettävissä vain lisättäväksi ja joka tallentaa muistiin kaikki tietoja muuttaneet toiminnot.

Järjestelmä tukee replikointia isäntäsolmuista orjasolmuihin . Minkä tahansa Redis-palvelimen tiedot voidaan replikoida mielivaltaisen määrän kertoja. Kaikki tiedot, jotka osuvat yhteen Redis-solmuun (master, eng.  master ), osuvat myös muihin solmuihin (slave, eng.  slave ). Orjasolmujen määrittämistä varten voit muuttaa slaveof- vaihtoehtoa tai vastaavaa komentoa (ilman näitä valintoja aloitetut solmut ovat pääsolmuja).

Replikointi auttaa suojaamaan tietoja kopioimalla ne muille palvelimille. Replikointia voidaan käyttää myös suorituskyvyn parantamiseen, koska orjasolmut voivat palvella lukupyyntöjä ( lukujen skaalaus , ei kirjoitus). Replikasolmut voivat vastata hieman vanhentuneilla tiedoilla, mutta tämä on hyväksyttävää monissa sovelluksissa.

Redis-replikointijärjestelmä itsessään ei tue automaattista vikasietoa: jos pääsolmu kaatuu, sinun on valittava manuaalisesti uusi isäntä orjasolmujen joukosta; mutta siellä on Redis Sentinel -järjestelmä, joka tarjoaa valvonnan ja automaattisen vaihdon.

Redis Sentinel

Redis Sentinel  on erikoistunut Redis-isäntähallintajärjestelmä, joka suorittaa seuraavat tehtävät:

Redis Sentinel on sisällytetty Redikseen versiosta 2.6 lähtien (Sentinel 1 on vanhentunut). Redis 2.8:sta alkaen nykyinen julkaisu on Sentinel 2.

Sentinelia ei suositella käytettäväksi yhdessä tapauksessa, Sentinel-solmujen klusteri ylläpitää päätösvaltaisuutta, minkä ansiosta se pysyy toimintakunnossa myös vaihtelevalla koostumuksella ja joidenkin tilapäisesti puuttuessa.

Muistiinpanot

  1. Redis Open Source -projekti Open Hubissa: Kielet-sivu - 2006.
  2. Julkaisu 7.0.5 - 2022.
  3. https://github.com/antirez/redis/blob/unstable/COPYING
  4. Redis Open Source -projekti Open Hubissa: Lisenssisivu - 2006.
  5. Kuinka nopea Redis on? . Haettu 10. heinäkuuta 2016. Arkistoitu alkuperäisestä 8. heinäkuuta 2016.
  6. VMware: uusi Rediksen koti . Haettu 30. joulukuuta 2010. Arkistoitu alkuperäisestä 22. maaliskuuta 2010.
  7. Redis-sponsorit . Haettu 2. huhtikuuta 2015. Arkistoitu alkuperäisestä 25. kesäkuuta 2014.
  8. Johdatus Redikseen . Haettu 15. toukokuuta 2012. Arkistoitu alkuperäisestä 7. toukokuuta 2012.

Linkit