Redis | |
---|---|
Sorts | Nyckel-värde databas |
Utvecklaren | Redis Labs [d] |
Skrivet i | C [1] |
Operativ system | plattformsoberoende |
Gränssnittsspråk | engelsk |
Första upplagan | 10 maj 2009 |
senaste versionen |
|
Licens | modifierad BSD-licens [d] [3][4] |
Hemsida | redis.io _ |
Mediafiler på Wikimedia Commons |
Redis (från engelsk fjärrordboksserver ) är ett NoSQL - baserat databashanteringssystem med öppen källkod som fungerar med nyckel -värde datastrukturer . Den används både för databaser och för implementering av cacher , meddelandeförmedlare .
Den är fokuserad på att uppnå maximal prestanda vid atomoperationer (cirka 100 tusen SET- och GET -förfrågningar per sekund deklareras på en Linux -server på ingångsnivå [5] ). Skrivet i C , är åtkomstgränssnitt byggda för de flesta större programmeringsspråk.
Under perioden 2010-2013 sponsrades utvecklingen av systemet av VMware [6] , sedan maj 2013, efter omorganisationer i EMC -VMware-federationen, överfördes projektet till Pivotal [7] . Sedan juni 2015 är huvudsponsorn för projektet företaget Redis Labs , speciellt grundat för kommersialiseringen av Redis, huvudutvecklaren av produkten, Salvatore Sanfilippo , flyttade också till det .
Lagrar databasen i RAM, utrustad med ögonblicksbild och journalföringsmekanismer för beständig lagring (på diskar, solid state-enheter). Den tillhandahåller också operationer för att implementera meddelandemekanismen i publicerings-prenumerationsmönstret : med den kan applikationer skapa kanaler, prenumerera på dem och lägga meddelanden i kanaler som kommer att tas emot av alla prenumeranter (som IRC- chatt). Stöder datareplikering från masternoder till flera slavar ( eng. master-slavreplikering ). Det stöder också transaktioner och batchbearbetning av kommandon (utför en batch av kommandon, få en batch av resultat).
Körs på de flesta POSIX - system som Linux , *BSD , Mac OS X utan några tillägg, projektets sponsorföretag stöder systemet på Linux och Mac OS X. Det finns inget officiellt stöd för Windows -byggen , men vissa alternativ finns tillgängliga för att tillhandahålla Redis arbete på detta system [8] rapporter om Microsofts arbete med att porta Redis till Windows.
Version 2.6.0 lade till stöd för Lua , vilket gör att du kan köra frågor på servern. Lua tillåter godtycklig bearbetning att göras atomärt på servern och är avsedd att användas när samma resultat inte kan uppnås med standardkommandon.
Bland programmeringsspråken som har bibliotek för att arbeta med Redis är C , C++ , C# , Clojure , Lisp , Erlang , Java , JavaScript , Haskell , Lua , Perl , PHP , Python , Ruby , Scala , Go , Tcl , Rust , Swift , Nim .
Redis lagrar all data i form av en ordbok , där nycklar är associerade med deras värden. En av de viktigaste skillnaderna mellan Redis och andra datalager är att värdena för dessa nycklar inte är begränsade till strängar. Följande abstrakta datatyper stöds: strängar, listor , uppsättningar , hashtabeller , ordnade uppsättningar.
Datatypen för ett värde avgör vilka operationer (kommandon) som är tillgängliga för det; stöder operationer på hög nivå som förening och skillnad mellan uppsättningar, sortering av uppsättningar.
Dataåterställning utförs på två olika sätt. Den första är ögonblicksbildsmekanismen, där data asynkront överförs från RAM till en RDB -fil (en förlängning av Redis-dumpar). Det andra sättet (sedan version 1.1) är en framskrivningslogg , endast tillgänglig för tillägg, som lagrar alla operationer som ändrade data i minnet.
Systemet stöder replikering från master- till slavnoder . Data från vilken Redis-server som helst kan replikeras ett godtyckligt antal gånger. All data som faller på en Redis-nod (master, eng. master ) kommer också att falla på andra noder (slave, eng. slave ). För att konfigurera slavnoder kan du ändra alternativet slaveof eller ett liknande kommando (noder som startas utan dessa alternativ är masternoder).
Replikering hjälper till att skydda data genom att kopiera dem till andra servrar. Replikering kan också användas för att förbättra prestanda, eftersom läsbegäranden kan betjänas av slavnoder ( skala ut läsningar, inte skrivningar). Replikanoder kan svara med lite inaktuella data, men detta är acceptabelt för många applikationer.
Redis-replikeringssystemet i sig stöder inte automatisk failover: om en masternod går ner måste du manuellt välja en ny master bland slavnoderna; men det finns ett Redis Sentinel-system som ger övervakning och automatisk växling.
Redis Sentinel är ett specialiserat Redis värdhanteringssystem som utför följande uppgifter:
Redis Sentinel har funnits med Redis sedan version 2.6 (Sentinel 1 är utfasad). Från och med Redis 2.8 är den aktuella versionen Sentinel 2.
Sentinel rekommenderas inte att användas i en enda instans, ett kluster av Sentinel-noder upprätthåller ett kvorum, tack vare vilket det förblir operativt även med varierande sammansättning och tillfällig frånvaro av några av dem.
Databashanteringssystem (DBMS) | |
---|---|
Klient-server | |
Motorer | |
Fil server |