Til tross for disse likhetene, kan det være en ganske utfordring å velge hvilken du skal bruke til applikasjonene dine.
I denne artikkelen vil vi bryte ned de essensielle aspektene ved en database i minnet og sammenligne dem.
Definisjon
La oss starte med det grunnleggende og diskutere hva som er Redis og hva som er memcached?
Hva er Redis?
Ekstern ordbokserver eller redis for kort er definert som en gratis, open source in-memory-database som brukes som hurtigbuffer eller meldingsmegler. Det ble utviklet i 2009 av Salvatore Sanfilippo og nå Powers Popular Systems slike S Twitter, StackOverflow, GitHub, etc.
Hva er memcached?
Memcached er definert som en gratis, åpen kildekode og høy ytelse i minnedatabasen. Det brukes til å gi en hurtigbufringsmekanisme for applikasjoner, men fungerer generisk.
Det ble utviklet i 2004 av Brad Fitzpatrick og brukes nå av populære applikasjoner som Twitter, Facebook, YouTube, Instagram, Udemy, Slack, etc.
Språk og plattformstøtte
Redis er skrevet i ANSI C og fungerer i alle POSIX -systemer. Redis støttes i Linux, BSD og OSX Systems. Windows -støtte er ennå ikke tilgjengelig fra å skrive denne opplæringen.
Memcached er skrevet i ANSI C, men tverrplattform. Selv om det ikke er noen offisiell utgivelse av Memcached for Windows, kan du finne Cygwin -implementeringer av databasen eller kompilere den for plattformen din.
Datalagring
Redis har flere datastrukturer, som er veldig egnet for mange behov. Den støtter datatyper som:
Redis lar deg også utføre automatiske operasjoner som å legge til strenger, beregne sett forening, forskjell, kryss, etc., Legg til et element til en liste osv.
Memcached, derimot, støtter vanlige binære strenger. Dette gjør det enkelt å bruke og bruker mindre minneoverhead enn Redis.
Arkitektur
Både Redis og Memcached følger en klient-serverarkitektur. Imidlertid er Redis entrådet mens memcached er flertrådet.
Datapartisjonering
Både Redis og Memcached støtter distribusjonen av data på tvers av forskjellige noder.
Ventetid
Siden både Redis og Memcached er databaser i minnet, gir de underkondens latens.
Cache Clearing
Redis og Memcached lar deg tømme cache ved hjelp av Flushall eller Flushdb og Flush_all -kommandoer.
Skalerbarhet
Både Redis og Memcached lar deg skalere etter hvert som dataene dine vokser. Imidlertid skalerer Redis godt horisontalt mens memcached drar nytte av vertikal skalerbarhet
Utkastelsespolitikk
Redis støtter en samling av utkastelsespolitikk som kan tilpasses i henhold til dine behov.
Sjekk vår opplæring om Redis Eviction Policies for å lære mer.
På den annen side er Memcached begrenset til LRU -utkastelsespolitikken.
Brukervennlighet/dokumentasjon
Redis er veldig godt dokumentasjon og har et stort samfunn bak seg. Dette gjør det veldig enkelt å lære og bruke.
Selv om memcached er generell og relativt dokumentert, kan det hende du må grave deg inn i kildekoden for å implementere tilpassede funksjoner.
Database ledelse
Redis gir deg et innebygd CLI-verktøy for å få tilgang til og administrere databasene og Redis-serveren.
Memcached bruker telnet for å koble til og administrere serveren din.
Kommunikasjonsprotokoll
Redis bruker TCP-tilkoblingsprotokoll eller UNIX-lignende stikkontakter uten støtte for UDP.
Memcached støtter både TCP- og UDP -protokoller.
Replikering
Redis tilbyr en enkel implementering av master-slave replikasjon. Det er uanstrengt å bruke og konfigurere. Replikasjonen vil skape eksakte kopier av masterforekomsten uavhengig av hva som skjer med mesteren.
Memcached støtter ikke replikasjon ikke. Du kan imidlertid implementere datareplikasjon ved hjelp av oppdateringsverktøy som http: // repcached.lab.Klab.org/
Persistens/øyeblikksbilder
Redis støtter NATYRE SNAPSHOTTING ved å lagre et øyeblikksbilde av datasettene dine til en disk i binærfil. Imidlertid kan du tilpasse snapshotting -funksjonene i Redis.Conf -fil.
For utholdenhet støtter Redis:
Sjekk opplæringen vår om Redis Persistens for å utforske videre.
Memcached støtter ikke diskdump ikke. Du kan imidlertid bruke verktøy som memcached-dd for å implementere.
Det er ingen data vedvarende for memcached.
Skripting av serversiden
Redis støtter skripting på serversiden ved hjelp av en innebygd LUA-tolk. Den bruker eval- og evalsha -funksjoner for å evaluere LUA -skript.
Husk at LUA -skript i Redis er synkrone. Derfor blokkeres andre operasjoner når skriptene utfører.
Memcached støtter ikke skripting av serversiden.
Pub/sub
Redis støtter NATELT.
Memcached har ingen støtte for pub-sub-meldingsmodellen.
Bekker
Redis støtter strømmer med tillegg av Redis Stream -typer i Redis versjon 5.0
Memcached støtter ikke noe nytt strømmer. Du kan imidlertid bruke verktøy som Kafcache for å implementere strømmer.
https: // github.com/jpzk/kafcache
Geospatial støtte
Redis kommer med innfødt støtte for geospatiale data i sanntid. Memcached har imidlertid ikke en datastruktur for å støtte geospatiale data.
Transaksjonsstyring
Selv om Memcached bruker atomoperasjoner, støtter den ikke transaksjoner.
Som standard støtter Redis transaksjoner for å utføre kommandoer.
Klienter/programmeringsspråk
Redis støtter nesten alle de viktigste programmeringsspråk. Støttede klientlister er som vist nedenfor:
Memcached er ikke etterlatt og gir klienter store programmeringsspråk. Imidlertid kommer det til kort på listen over klienter sammenlignet med Redis.
De inkluderer:
Skystøtte
Følgende skyleverandører støtter Redis:
Følgende leverandører støtter også memcached:
Siste tanker.
Denne opplæringen gir en omfattende oversikt over likhetene og forskjellene i Redis og Memcached -databaser. Husk at denne opplæringen fungerer som en informasjonsreferanse. Bruk den til å ta et valg basert på dine krav.
Glad koding og ser deg i den neste!!!