Redis

Redis
Típusú Kulcsérték adatbázis
Fejlesztő Redis Labs [d]
Beírva C [1]
Operációs rendszer platformközi
Interfész nyelvek angol
Első kiadás 2009. május 10
legújabb verzió
Engedély módosított BSD licenc [d] [3][4]
Weboldal redis.io
 Médiafájlok a Wikimedia Commons oldalon

A Redis (az angol  távoli szótárkiszolgálóból ) egy nyílt forráskódú NoSQL rezidens adatbázis-kezelő rendszer , amely kulcsérték adatstruktúrákkal működik . Mind adatbázisokhoz , mind gyorsítótárak , üzenetközvetítők megvalósításához használják .

Arra összpontosít, hogy maximális teljesítményt érjen el az atomműveletek során ( másodpercenként körülbelül 100 ezer SET- és GET -kérés deklarálódik egy belépő szintű Linux szerveren [5] ). A C nyelven írt hozzáférési interfészek a legtöbb fő programozási nyelvhez készültek.

A 2010-2013 közötti időszakban a rendszer fejlesztését a VMware támogatta [6] , 2013 májusa óta az EMC -VMware szövetségben történt átszervezések után a projekt a Pivotalhoz került [7] . 2015 júniusa óta a projekt fő támogatója a kifejezetten a Redis kereskedelmi forgalomba hozatalára alapított Redis Labs cég, amelyhez a termék fő fejlesztője, Salvatore Sanfilippo is átköltözött .

Tervezés

Az adatbázist a RAM-ban tárolja, amely pillanatfelvételi és naplózó mechanizmusokkal van felszerelve a tartós tárolás érdekében (lemezeken, szilárdtestalapú meghajtókon). Műveleteket is biztosít az üzenetküldési mechanizmus megvalósításához a közzététel-feliratkozás mintában : ezzel az alkalmazások csatornákat hozhatnak létre, feliratkozhatnak rájuk, és üzeneteket helyezhetnek el olyan csatornákba, amelyeket minden előfizető megkap (például IRC chat). Támogatja az adatreplikációt a mester csomópontokról több slave-re ( magyar mester-szolga replikáció ) .  Támogatja a tranzakciókat és a parancsok kötegelt feldolgozását is (parancscsoport végrehajtása, eredmények köteg lekérése).

A legtöbb POSIX rendszeren, például Linuxon , *BSD -n , Mac OS X -en kiegészítők nélkül fut , a projektet támogató cég támogatja a rendszert Linuxon és Mac OS X-en. A Windows buildekhez nincs hivatalos támogatás , de néhány opció elérhető a Redis munkáját nyújtja ezen a rendszeren [8] beszámol a Microsoft Redis Windows rendszerre történő portolásával kapcsolatos munkájáról.

A 2.6.0-s verzió támogatja a Lua -t , amely lehetővé teszi a lekérdezések futtatását a szerveren. A Lua tetszőleges feldolgozást tesz lehetővé a szerveren, és akkor használható, ha ugyanazt az eredményt nem lehet elérni szabványos parancsokkal.

A Redissel való együttműködéshez könyvtárakat tartalmazó programozási nyelvek közé tartozik a C , C++ , C# , Clojure , Lisp , Erlang , Java , JavaScript , Haskell , Lua , Perl , PHP , Python , Ruby , Scala , Go , Tcl , Rust , Swift , Nim .

Adatmodellek

A Redis minden adatot szótár formájában tárol , amelyben a kulcsok értékükhöz vannak rendelve. Az egyik legfontosabb különbség a Redis és más adattárak között az, hogy ezeknek a kulcsoknak az értékei nem korlátozódnak karakterláncokra. A következő absztrakt adattípusok támogatottak: strings, lists , sets , hash tables , ordered sets.

Egy érték adattípusa határozza meg, hogy milyen műveletek (parancsok) állnak rendelkezésére; támogatja az olyan magas szintű műveleteket, mint a halmazok egyesítése és különbsége, halmazok rendezése.

Adat-helyreállítás és replikáció

Az adatok helyreállítása két különböző módon történik. Az első a pillanatkép-mechanizmus, amelyben az adatok aszinkron módon átvitelre kerülnek a RAM-ból egy RDB -fájlba (a Redis-kiíratások kiterjesztése). A második mód (az 1.1-es verzió óta) egy előreírási napló , amely csak hozzáfűzésre áll rendelkezésre, és a memóriában tárolja az összes adatot megváltoztató műveletet.

A rendszer támogatja a replikációt a mesterről a szolga csomópontra . Bármely Redis-kiszolgálóról származó adatok tetszőleges számú alkalommal replikálhatók. Minden adat, amely egy Redis csomópontra esik (master, eng.  master ), más csomópontokra is esik (slave, eng.  slave ). A szolga csomópontok beállításához módosíthatja a slaveof beállítást vagy egy hasonló parancsot (az ezen opciók nélkül elindított csomópontok mester csomópontok).

A replikáció segít megvédeni az adatokat azáltal, hogy más kiszolgálókra másolja azokat. A replikáció a teljesítmény javítására is használható, mivel az olvasási kéréseket szolga csomópontok is kiszolgálhatják ( az olvasások kiosztása, nem az írás). A replika csomópontok kissé elavult adatokkal válaszolhatnak, de ez sok alkalmazásnál elfogadható.

Maga a Redis replikációs rendszer nem támogatja az automatikus feladatátvételt: ha egy főcsomópont leáll, manuálisan kell kiválasztani egy új mestert a szolga csomópontok közül; de van egy Redis Sentinel rendszer, amely felügyeletet és automatikus kapcsolást biztosít.

Redis Sentinel

A Redis Sentinel  egy speciális Redis gazdagépkezelő rendszer, amely a következő feladatokat hajtja végre:

A Redis Sentinel a 2.6-os verzió óta szerepel a Redisben (a Sentinel 1 elavult). A Redis 2.8-tól kezdődően a jelenlegi kiadás a Sentinel 2.

A Sentinel nem ajánlott egy példányban használni, a Sentinel csomópontok klasztere fenntartja a határozatképességet, aminek köszönhetően változó összetételű és néhányuk átmeneti hiánya esetén is működőképes marad.

Jegyzetek

  1. A redis nyílt forráskódú projekt az Open Hubon: Nyelvek oldala - 2006.
  2. Kiadás 7.0.5 – 2022.
  3. https://github.com/antirez/redis/blob/unstable/COPYING
  4. A redis nyílt forráskódú projekt az Open Hubon: Licencek oldala - 2006.
  5. Milyen gyors Redis? . Letöltve: 2016. július 10. Az eredetiből archiválva : 2016. július 8..
  6. VMware: az új Redis főoldal . Letöltve: 2010. december 30. Az eredetiből archiválva : 2010. március 22..
  7. Redis szponzorok . Letöltve: 2015. április 2. Archiválva az eredetiből: 2014. június 25.
  8. A Redis bemutatása . Letöltve: 2012. május 15. Az eredetiből archiválva : 2012. május 7..

Linkek