sql >> Database teknologi >  >> NoSQL >> Redis

Top Redis Use Cases efter kernedatastrukturtyper

Redis, en forkortelse for Remote Dictionary Server, er et BSD-licenseret, open source in-memory nøgleværdi datastrukturlager skrevet i C-sprog af Salvatore Sanfillipo og blev først udgivet den 10. maj 2009. Afhængigt af hvordan det er konfigureret , Redis kan fungere som en database, en cache eller en meddelelsesmægler. Det er vigtigt at bemærke, at Redis er et NoSQL-databasesystem. Dette indebærer, at i modsætning til SQL (Structured Query Language)-drevne databasesystemer som MySQL, PostgreSQL og Oracle, gemmer Redis ikke data i veldefinerede databaseskemaer, som udgør tabeller, rækker og kolonner. I stedet gemmer Redis data i datastrukturer, hvilket gør det meget fleksibelt at bruge. ScaleGrids hosting for Redis™* giver dig mulighed for at automatisere dine tidskrævende operationer til en række forskellige Redis-brugssager. I denne blog skitserer vi de bedste Redis-brugstilfælde efter de forskellige kernedatastrukturtyper.

Datastrukturer i Redis

Lad os tage et kig på nogle af de datatyper, som Redis understøtter. I Redis har vi strenge, lister, sæt, sorterede sæt og hashes, som vi kommer til at dække i denne artikel. Derudover har vi andre datatyper såsom bitmaps, hyperloglogs og geospatiale indekser med radiusforespørgsler og streams. Selvom der er nogle Redis GUI-værktøjer skrevet af Redis-fællesskabet, er kommandolinjen langt den vigtigste klient, i modsætning til populære SQL-databasebrugere, som ofte foretrækker GUI-styringssystemer, for eksempel phpMyAdmin til MySQL og PgAdmin til PostgreSQL.

Lad os se nærmere på de datatyper, der findes i Redis.

Redis Strings

Redis-strenge er den mest grundlæggende type Redis-værdi, der udnyttes af alle andre datastrukturtyper, og ligner strenge i andre programmeringssprog såsom Java eller Python. Strings, som kan indeholde enhver datatype, betragtes som binært sikre og har en maksimal længde på 512MB. Her er et par nyttige kommandoer til Redis-strenge:

At gemme en streng 'john ' under en tast såsom 'elev' i Redis skal du køre kommandoen:

INDSTIL "student" "john"

For at hente strengen skal du bruge kommandoen GET som vist:

FÅ "student"

For at slette strengen indeholdt i nøglen, brug DEL-kommandoen:

DEL "student"

Redis Strings Use Cases

  1. Sessionscache: Mange websteder udnytter Redis Strings til at oprette en sessionscache for at fremskynde deres webstedsoplevelse ved at cache HTML-fragmenter eller -sider. Da data gemmes midlertidigt i RAM, gør denne egenskab Redis til et perfekt valg som sessionscache. Den er i stand til midlertidigt at gemme brugerspecifikke data, for eksempel varer gemt i en indkøbskurv i en netbutik, hvilket er afgørende for, at dine brugere ikke mister deres data, hvis de logger ud eller mister forbindelsen.
  2. Køer: Enhver applikation, der beskæftiger sig med trafikpropper, meddelelser, dataindsamling, jobadministration eller pakkerouting bør overveje en Redis Queue, da dette kan hjælpe dig med at administrere din køstørrelse efter ankomst- og afgangshastighed til ressourcefordeling.
  3. Brug og målt fakturering: En mindre kendt use case for Redis Strings er realtidsmåling for forbrugsbaserede prismodeller. Dette gør det muligt for SaaS-platforme, der fakturerer baseret på faktisk brug, at måle deres kunders aktivitet, f.eks. i telekommunikationsindustrien, hvor de kan opkræve betaling for tekstbeskeder eller minutter.

Redis-lister

Lister indeholder strenge, der er sorteret efter deres indsættelsesrækkefølge. Med Redis Lists kan du tilføje elementer til hovedet eller halen af ​​listerne, hvilket er meget nyttigt til job i kø. Hvis der er flere presserende opgaver, du har brug for at blive udført, kan disse skubbes foran andre lavere prioriterede opgaver i køen. Vi ville bruge LPUSH-kommandoen til at indsætte et element i hovedet eller til venstre for strengen, og RPUSH-kommandoen til at indsætte ved halen eller til højre for vores streng. Lad os se på et eksempel:

LPUSH-liste x   # nu er listen "x"

LPUSH-liste y   # nu er listen "y","x"

RPUSH list z   # nu er listen "y","x","z" (bemærk, hvordan 'z'-elementet blev tilføjet til slutningen af ​​listen med RPUSH-kommandoen)

Redis List Use Cases

  1. Sociale netværkswebsteder: Sociale platforme som Twitter bruger Redis Lists til at udfylde deres tidslinjer eller hjemmesidefeeds og kan tilpasse toppen af ​​deres feeds med trending tweets eller historier.
  2. RSS-feeds: Opret nyhedsfeeds fra tilpassede kilder, hvor du kan hente de seneste opdateringer og tillade interesserede følgere at abonnere på dit RSS-feed.
  3. Leaderboards: Fora som Reddit og andre afstemningsplatforme udnytter Redis-lister til at tilføje artikler til ranglisten og sortere efter de mest stemte poster.

Lær, hvordan du opbygger dit eget Twitter-feed i vores Caching-tweets ved hjælp af Node.js, Redis og Socket.io blogindlæg.

Top #Redis Use Cases efter kernedatastrukturtyperKlik for at tweete

Redis-sæt

Redis-sæt er kraftfulde datatyper, der understøtter kraftfulde operationer såsom kryds og fagforeninger. De er ikke i nogen rækkefølge og bruges normalt, når du vil udføre en revision og se sammenhænge mellem forskellige variabler. Sæt er rimelig hurtige, og uanset antallet af elementer du har gemt, vil det tage samme tid at tilføje eller fjerne elementer i et sæt. Desuden tillader sæt ikke duplikerede nøgler eller duplikerede medlemmer, så en nøgle tilføjet flere gange i et sæt vil simpelthen blive ignoreret. Dette er drevet af en funktion kaldet SADD, som undgår duplikering af flere lignende poster. SADD-attributten kan bruges ved kontrol af unikke værdier og kan også bruges til at planlægge job, der kører i baggrunden, inklusive cron-job, som er automatiserede scripts.

Disse er særligt nyttige til at analysere kundeadfærd i realtid for dit online shopping-websted. For eksempel, hvis du driver en online tøjbutik, anvender Redis Sorted Sets relationsmatchningsteknik såsom fagforeninger, skæringspunkter og subtraktioner (almindeligvis anvendt i Venn-diagrammer) for at give et præcist billede af kundeadfærd. Du kan hente data om indkøbsmønstre mellem køn, hvilke tøjprodukter der sælger mest, og hvilke timer der registrerer det højeste salg.

Redis Sets Use Cases

  1. Analyse af e-handelssalg: Mange onlinebutikker bruger Redis Sets til at analysere kundeadfærd, såsom søgninger eller køb for en specifik produktkategori eller underkategori. For eksempel kan en onlineboghandelsejer finde ud af, hvor mange kunder der har købt medicinske bøger i psykologi.
  2. IP-adressesporing: Redis-sæt er et fantastisk værktøj for udviklere, der ønsker at analysere alle de IP-adresser, der besøgte en specifik hjemmeside eller blogindlæg, og være i stand til at ignorere alle dubletter for unikke besøgende med deres SADD-funktion.
  3. Upassende indholdsfiltrering: For enhver app, der indsamler brugerinput, er det en god idé at implementere indholdsfiltrering for upassende ord, og du kan gøre dette med Redis Sets ved at tilføje ord, du gerne vil filtrere, til en SET-tast og SADD-kommandoen.

Sorterede sæt

Som navnet antyder, er Redis Sorted Sets en samling af strenge, der tildeler en rækkefølge til dine elementer, og er en af ​​de mest avancerede datastrukturer i Redis. Disse ligner Redis-sæt, kun at sæt ikke har nogen rækkefølge, mens Sorterede sæt forbinder hvert medlem med en score. Sorterede sæt er kendt for at være meget hurtige, da du kan returnere bestilte lister og få adgang til elementer på kortest mulig tid.

Redis Sorted Sets Use Cases

  1. Spørgsmål og svar-platforme: Mange Q&A-platforme som Stack Overflow og Quora bruger Redis Sorted Sets til at rangere de højest stemte svar for hvert foreslået spørgsmål for at sikre, at indholdet af den bedste kvalitet er anført øverst på siden.
  2. Scoretavler for spilapp: Online gaming apps udnytter Redis Sorted Sets til at vedligeholde deres høje scorelister, da scores kan gentages, men strengene, der indeholder de unikke brugerdetaljer, kan ikke.
  3. Tjenesten til opgaveplanlægning: Redis Sorterede sæt er et fantastisk værktøj til en opgaveplanlægningstjeneste, da du kan tilknytte en score for at rangere en opgaves prioritet i din kø. For enhver opgave, der ikke har en score noteret, kan du bruge indstillingen VÆGT til en standard på 1.
  4. Geo-hashing: Redis geo-indekserings-API'en bruger et sorteret sæt til Geo Hash-teknikken, som giver dig mulighed for at indeksere placeringer baseret på breddegrad og længdegrad, og omdanne multidimensionelle data til lineære data.

Redis Hashes

Redis Hashes er kort mellem strengfelter og strengværdier. Dette er den gå-til-datatype, hvis du i det væsentlige skal oprette en beholder med unikke felter og deres værdier for at repræsentere objekter. Hashes giver dig mulighed for at gemme en anstændig mængde felter, op til 232 - 1 feltværdipar (mere end 4 milliarder), mens de fylder meget lidt. Du bør bruge Redis Hashes, når det er muligt, da du kan bruge en lille Redis-instans til at gemme millioner af objekter. Du kan bruge grundlæggende hash-kommandoer, såsom get, set, exists, foruden mange avancerede operationer.

Redis Hashes Use Cases

  1. Brugerprofiler: Mange webapplikationer bruger Redis Hashes til deres brugerprofiler, da de kan bruge en enkelt hash til alle brugerfelter, såsom navn, efternavn, e-mail, adgangskode osv.
  2. Brugerindlæg: Sociale platforme som Instagram udnytter Redis Hashes til at kortlægge alle de arkiverede brugerbilleder eller opslag tilbage til en enkelt bruger. Hashing-mekanismen giver dem mulighed for at slå op og returnere værdier meget hurtigt, tilpasse dataene i hukommelsen og udnytte datapersistens i tilfælde af, at en af ​​deres servere dør.
  3. Lagring af Multi-Tenant Metrics: Multi-tenant-applikationer kan udnytte Redis-hashes til at registrere og gemme deres produkt- og salgsmålinger på en måde, der garanterer solid adskillelse mellem hver lejer, da hashes kan kodes effektivt i et meget lille hukommelsesrum.

Hvem bruger Redis?

Redis har fundet en enorm markedsandel på tværs af rejse- og gæstfriheds-, fællesskabsfora, sociale medier, SaaS og e-handel for blot at nævne nogle få. Nogle af de førende virksomheder, der bruger Redis, inkluderer Pinterest, Uber, Slack, Airbnb, Twitter og Stack Overflow. Her er nogle statistikker om Redis popularitet i dag:

  • 4.107 virksomheder rapporterede at bruge Redis på StackShare
  • 8.759 udviklere erklærede at bruge Redis på StackShare
  • 38.094 GitHub-brugere har medvirket Redis
  • #8 rangeret database på DB-Engines med en score på 144,08


  1. ved hjælp af en variabel i mongodb update

  2. Problem med MongoDB GridFS ved at gemme filer med Node.JS

  3. Redis vs Service Bus til pub/sub-scenarie

  4. Hvordan kan jeg implementere tilladelser på feltniveau til MongoDB?