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 .
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 .
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.
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.
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.
Adatbázis-kezelő rendszerek (DBMS) | |
---|---|
Kliens-szerver | |
Motorok | |
Fájlszerver |