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 .
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 .
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 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 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.
Tietokannan hallintajärjestelmät (DBMS) | |
---|---|
Asiakas-palvelin | |
Moottorit | |
Tiedosto palvelin |