Remote Dictionary Server, eller Redis for kort, er en lynrask database i minnet som lagrer verdier i nøkkelverdipar. Det brukes hovedsakelig som en hurtigbufringsmekanisme for databaser som SQL og dokumentdatabaser.
Siden Redis er en database i minnet, er plassen som brukes kritisk og må overvåkes sterkt. En strategi for å forbedre og optimalisere minneytelsen for Redis er å bruke komprimering.
Som standard gir Redis ikke komprimering for lagret data. Derfor implementeres komprimeringsteknikker på applikasjonen.
La oss diskutere noen få teknikker du kan bruke for å optimalisere minneytelsen i Redis.
Implementere en komprimeringsalgoritme
Siden Redis ikke komprimerer de lagrede verdiene, må du gjøre det før du lagrer dem. Det er flere kompresjonsalgoritmer for å komprimere strenger før du lagrer dem.
Slike algoritmer inkluderer:
Bruk kortere nøkkelnavn
Selv om utviklere bør favorisere mer beskrivende navn over korte, kan minnebruk raskt skyrocket hvis du har en omfattende samling av nøkler i databasen.
Vurder alltid å bruke korte nøkkelnavn for nøkkelverdidataene dine for å unngå dette.
Eksempel:
Sett denne_is_a_very_large_key_name -verdienI stedet kan du bruke nøkkelnavnet:
Sett L_Key_Name -verdienDette reduserer Redis antall tegn til å lagre for databasen din.
Komprimere feltnavn
Det samme tilfellet ovenfor kan sies om feltnavnene. Og igjen, å bruke et kortere feltnavn kan spare noen få byte eller kilobyte av minnet ditt.
Vurder derfor å bruke korte feltnavn for Redis -dataene dine.
Et eksempel er som vist:
127.0.0.1: 6379> HSET User_Info ID 1 FIRSTNAME MOES LastName K Country "United States of America"Her kan vi lagre noe minne ved å refactorere feltnavnene som:
Hset user_info id 1 fname moes lname country ossDette komprimerer feltnavnene og verdiene.
Bruk liste i stedet for en hasj
En hash består av feltnavn og tilsvarende verdier. Selv om dette ikke er et betydelig problem, kan det være problematisk når tusenvis av hasjtyper spiller inn.
For å løse dette kan du velge en liste som vist:
Hset user_info id 1 fname moes lname country ossDu kan konvertere ovennevnte hasj til en liste som:
Lpush ["fname", "moes", "lname", "k", "country", "oss"]Unngå dynamiske LUA -skript
For å spare enda mer minne, unngå å bruke dynamiske LUA -skript som får hurtigbufferen til å vokse. Jo flere skript du laster inn, jo mer bruker du mye minne.
Aktiver listekomprimering
Som nevnt komprimerer ikke Redis noen verdier som er lagret i den. Dette inkluderer elementer i en liste. For korte listeverdier er dette neppe et problem. På lange lister kan det imidlertid være en fordel å muliggjøre komprimering.
I Redis.Conf -fil, finn linjen:
sudokatt/etc/redis/redis.Conf | GREP List-CompressEndre verdien av listekompress-dybde til begge:
Oppgrader Redis -versjonen din
Et annet skritt du kan ta for å forbedre minnebruken i Redis -serveren din er å oppgradere Redis -versjonen din.
Fra og med å skrive denne opplæringen, versjon 4.0 (siste) kommer med følgende funksjoner.
Lukking
Denne guiden diskuterer forskjellige metoder og teknikker du kan bruke for å optimalisere minnebruk i Redis -klyngen. Husk imidlertid at ikke alle former er 100% garantert.
Takk for at du leser, vi sees i den neste!!