Redis, förkortning för Remote Dictionary Server, är en BSD-licensierad, öppen källkodslagring för nyckel-värdedatastruktur i minnet skriven på C-språket av Salvatore Sanfillipo och släpptes först den 10 maj 2009. Beroende på hur den är konfigurerad , Redis kan fungera som en databas, en cache eller en meddelandeförmedlare. Det är viktigt att notera att Redis är ett NoSQL-databassystem. Detta innebär att till skillnad från SQL (Structured Query Language)-drivna databassystem som MySQL, PostgreSQL och Oracle, lagrar inte Redis data i väldefinierade databasscheman som utgör tabeller, rader och kolumner. Istället lagrar Redis data i datastrukturer vilket gör det väldigt flexibelt att använda. ScaleGrids hosting för Redis™* låter dig automatisera dina tidskrävande operationer för en mängd olika Redis-användningsfall. I den här bloggen beskriver vi de bästa Redis-användningsfallen efter de olika kärndatastrukturtyperna.
Datastrukturer i Redis
Låt oss ta en titt på några av de datatyper som Redis stöder. I Redis har vi strängar, listor, uppsättningar, sorterade uppsättningar och hash, som vi kommer att täcka i den här artikeln. Dessutom har vi andra datatyper som bitmappar, hyperlogloggar och geospatiala index med radiefrågor och strömmar. Även om det finns några Redis GUI-verktyg skrivna av Redis-communityt, är kommandoraden den absolut viktigaste klienten, till skillnad från populära SQL-databasanvändare som ofta föredrar GUI-hanteringssystem, till exempel phpMyAdmin för MySQL och PgAdmin för PostgreSQL.
Låt oss titta närmare på de datatyper som finns i Redis.
Redis Strings
Redis-strängar är den mest grundläggande typen av Redis-värde som utnyttjas av alla andra datastrukturtyper och är ganska lika strängar i andra programmeringsspråk som Java eller Python. Strängar, som kan innehålla vilken datatyp som helst, anses vara binärt säkra och har en maximal längd på 512 MB. Här är ett par användbara kommandon för Redis-strängar:
För att lagra en sträng "john ' under en tangent som 'student' i Redis, kör kommandot:
SET “student” “john”
För att hämta strängen, använd kommandot GET som visas:
FÅ "student"
För att ta bort strängen i nyckeln använd kommandot DEL:
DEL “student”
Redis Strings Use Cases
- Sessionscache: Många webbplatser använder Redis Strings för att skapa en sessionscache för att påskynda webbplatsupplevelsen genom att cachelagra HTML-fragment eller sidor. Eftersom data lagras tillfälligt i RAM-minnet gör detta attribut Redis till ett perfekt val som sessionscache. Den kan tillfälligt lagra användarspecifik data, till exempel varor som lagras i en kundvagn i en webbutik, vilket är avgörande för att dina användare inte förlorar sin data i händelse av att de loggar ut eller tappar anslutningen.
- Köer: Alla program som hanterar trafikstockningar, meddelanden, datainsamling, jobbhantering eller packardirigering bör överväga en Redis Queue, eftersom detta kan hjälpa dig att hantera din köstorlek efter ankomst- och avgångshastighet för resursdistribution.
- Användning och beräknad fakturering: Ett mindre känt användningsfall för Redis Strings är realtidsmätning för förbrukningsbaserade prismodeller. Detta gör att SaaS-plattformar som fakturerar baserat på faktisk användning kan mäta sina kunders aktivitet, till exempel inom telekommunikationsindustrin där de kan ta betalt för textmeddelanden eller minuter.
Redislistor
Listor innehåller strängar som är sorterade efter deras infogningsordning. Med Redis Lists kan du lägga till objekt i huvudet eller svansen av listorna, vilket är mycket användbart för att köa jobb. Om det finns fler brådskande jobb som du behöver utföra kan dessa skjutas framför andra lägre prioriterade jobb i kön. Vi skulle använda kommandot LPUSH för att infoga ett element vid huvudet, eller till vänster om strängen, och kommandot RPUSH för att infoga vid svansen, eller höger om vår sträng. Låt oss titta på ett exempel:
LPUSH-lista x # nu är listan "x"
LPUSH-lista y # nu är listan "y","x"
RPUSH list z # nu är listan "y","x","z" (lägg märke till hur 'z'-elementet lades till i slutet av listan med RPUSH-kommandot)
Redis List Use Cases
- Webbplatser för sociala nätverk: Sociala plattformar som Twitter använder Redis Lists för att fylla i sina tidslinjer eller flöden på hemsidan och kan anpassa toppen av sina flöden med trendiga tweets eller berättelser.
- RSS-flöden: Skapa nyhetsflöden från anpassade källor där du kan hämta de senaste uppdateringarna och låta intresserade följare prenumerera på ditt RSS-flöde.
- Leaderboards: Forum som Reddit och andra röstningsplattformar använder Redis Lists för att lägga till artiklar på topplistan och sortera efter de mest röstade bidragen.
Lär dig hur du bygger ditt eget Twitter-flöde i våra Caching-tweets med hjälp av Node.js, Redis och Socket.io blogginlägg.
Bästa #Redis användningsfall efter kärndatastrukturtyperKlicka för att tweetaRedis-set
Redis-uppsättningar är kraftfulla datatyper som stöder kraftfulla operationer som korsningar och fackföreningar. De är inte i någon ordning och används vanligtvis när man vill göra en revision och se samband mellan olika variabler. Uppsättningar är ganska snabba, och oavsett antalet element du har lagrat kommer det att ta samma tid att lägga till eller ta bort föremål i en uppsättning. Dessutom tillåter inte set dubbletter av nycklar eller dubbletter av medlemmar, så en nyckel som läggs till flera gånger i en uppsättning kommer helt enkelt att ignoreras. Detta drivs av en funktion som kallas SADD som undviker duplicering av flera liknande poster. SADD-attributet kan användas vid kontroll av unika värden, och kan även användas för att schemalägga jobb som körs i bakgrunden, inklusive cron-jobb som är automatiserade skript.
Dessa är särskilt användbara för att analysera kundernas beteende i realtid för din shoppingwebbplats. Om du till exempel driver en klädbutik online använder Redis Sorted Sets relationsmatchningsteknik som fackföreningar, korsningar och subtraktioner (som vanligtvis används i Venn-diagram) för att ge en korrekt bild av kundernas beteende. Du kan hämta data om shoppingmönster mellan kön, vilka klädprodukter som säljer mest och vilka timmar som registrerar den högsta försäljningen.
Redis Sets Användningsfall
- Analysera e-handelsförsäljning: Många nätbutiker använder Redis Sets för att analysera kundbeteende, såsom sökningar eller köp för en specifik produktkategori eller underkategori. En bokhandelsägare på nätet kan till exempel ta reda på hur många kunder som köpt medicinska böcker inom psykologi.
- IP-adressspårning: Redis Sets är ett utmärkt verktyg för utvecklare som vill analysera alla IP-adresser som besökte en specifik webbsida eller blogginlägg, och för att kunna ignorera alla dubbletter för unika besökare med sin SADD-funktion.
- Olämplig innehållsfiltrering: För alla appar som samlar in användardata är det en bra idé att implementera innehållsfiltrering för olämpliga ord, och du kan göra detta med Redis Sets genom att lägga till ord som du vill filtrera till en SET-tangent och SADD-kommandot.
Sorterade set
Som namnet antyder är Redis Sorterade uppsättningar en samling strängar som tilldelar en ordning till dina element och är en av de mest avancerade datastrukturerna i Redis. Dessa liknar Redis-uppsättningar, bara att set inte har någon ordning medan Sorterade uppsättningar associerar varje medlem med en poäng. Sorterade uppsättningar är kända för att vara mycket snabba, eftersom du kan returnera beställda listor och komma åt element på kortast möjliga tid.
Redis sorterade set Användningsfall
- Frågor och svar-plattformar: Många Q&A-plattformar som Stack Overflow och Quora använder Redis Sorted Sets för att rangordna de högst röstade svaren för varje föreslagen fråga för att säkerställa att innehållet av bästa kvalitet visas högst upp på sidan.
- Resultattavlor för spelappar: Spelappar online använder Redis Sorterade uppsättningar för att behålla sina poänglistor, eftersom poäng kan upprepas, men strängarna som innehåller de unika användaruppgifterna kan inte det.
- Task Scheduling Service: Redis Sorterade uppsättningar är ett utmärkt verktyg för en uppgiftsschemaläggningstjänst, eftersom du kan associera en poäng för att rangordna en uppgifts prioritet i din kö. För alla uppgifter som inte har en poäng noterad kan du använda alternativet VIKT till standardvärdet 1.
- Geo Hashing: Redis geoindexerings-API använder en sorterad uppsättning för Geo Hash-tekniken som låter dig indexera platser baserat på latitud och longitud, vilket gör flerdimensionell data till linjär data.
Redis Hashes
Redis-hashar är kartor mellan strängfält och strängvärden. Det här är datatypen som går till om du behöver skapa en behållare med unika fält och deras värden för att representera objekt. Hashes låter dig lagra en anständig mängd fält, upp till 232 – 1 fältvärdepar (mer än 4 miljarder), samtidigt som de tar väldigt lite utrymme. Du bör använda Redis Hashes när det är möjligt, eftersom du kan använda en liten Redis-instans för att lagra miljontals objekt. Du kan använda grundläggande hash-kommandooperationer, som get, set, exists, förutom många avancerade operationer.
Redis Hashes Användningsfall
- Användarprofiler: Många webbapplikationer använder Redis Hashes för sina användarprofiler, eftersom de kan använda en enda hash för alla användarfält, som namn, efternamn, e-post, lösenord, etc.
- Användarinlägg: Sociala plattformar som Instagram utnyttjar Redis Hashes för att kartlägga alla arkiverade användarfoton eller inlägg tillbaka till en enda användare. Med hashmekanismen kan de slå upp och returnera värden mycket snabbt, passa in data i minnet och utnyttja databeständighet i händelse av att en av deras servrar dör.
- Lagra mätvärden för flera hyresgäster: Multi-tenant-applikationer kan utnyttja Redis-haschar för att registrera och lagra deras produkt- och försäljningsstatistik på ett sätt som garanterar solid separation mellan varje hyresgäst, eftersom hash kan kodas effektivt på ett mycket litet minnesutrymme.
Vem använder Redis?
Redis har hittat en enorm marknadsandel inom resor och gästfrihet, community-forum, sociala medier, SaaS och e-handel för att bara nämna några. Några av de ledande företagen som använder Redis inkluderar Pinterest, Uber, Slack, Airbnb, Twitter och Stack Overflow. Här är lite statistik om Redis popularitet idag:
- 4 107 företag rapporterade använda Redis på StackShare
- 8 759 utvecklare uppgav att de använder Redis på StackShare
- 38 094 GitHub-användare har stjärnmärkt Redis
- #8-rankad databas på DB-Engines med poängen 144,08