Redis MaxMemory Policies

Redis MaxMemory Policies
Denne artikkelen vil diskutere Redis MaxMemory Policy og hvordan du kan bruke den som en LRU -cache.

Hva er Redis Eviction Policy?

Som navnet antyder, er en utkastelsespolitikk en funksjon som lar Redis "kaste ut" eller fjerne gamle data når nye data blir lagt til. Dette er en utrolig funksjon først og fremst når Redis brukes som hurtigbufringssystem.

Redis MaxMemory -direktiv

I Redis -konfigurasjonsfilen dikterer et direktiv kalt MaxMemory mengden minne som er tildelt for et datasett.

Selv om du kan konfigurere MaxMemory på Runtime ved hjelp av Config Set -kommandoen, Redis.Conf -fil lar deg angi den i utholdenhetsmodus.

For å angi MaxMemory -verdien ved kjøretid, logg inn på Redis CLI og skriv inn kommandoen:

Config Set MaxMemory 100

Kommandoen over vil sette maxmemory -verdien til 100 MB ved kjøretid. Du kan få gjeldende settverdi for MaxMemory ved å bruke kommandoen:

127.0.0.1: 6379> Config Get MaxMemory*

Dette skulle komme tilbake:

1) "MaxMemory-Policy"
2) "NOEVICTION"
3) "MaxMemory-Sampples"
4) "5"
5) "MaxMemory"
6) "100"

Den første er utkastelsespolitikken. Dette dikterer hvordan dataene fjernes etter at MaxMemory er nådd.

Merk: Sette MaxMemory til 0 sikrer at det ikke er noen grenser. For 64bit -systemer er dette satt til standard. På 332-biters systemer vil Redis bruke opptil 3 GB.

Hvordan utkastelsesprosess fungerer

Men hvordan fungerer denne utkastelsesprosessen?

Det skjer i 4 enkle trinn.

  1. Først kjører klienten kommandoen for å legge til nye data.
  2. Før kommandoen blir utført, sjekk Redis om minnebruken er høyere enn den faste maxmemory -grensen.
  3. Hvis grensen er nådd, bruker den den spesifiserte utkastelsespolitikken for å fjerne nøklene.
  4. Til slutt blir kommandoen utført, og nye data blir lagt til.

Redis Eviction Policies

Vi nevner stadig utkastelsespolitikk. Hva er de, og hva gjør de?

Enkelt sagt setter en utkastelsespolitikk reglene for hvordan Redis kaster ut en nøkkel når minnegrensen er nådd.

Det er to kategorier av utkastelsespolitikk i Redis.

Generell utkastelsespolitikk

Den første kategorien er generell utkastelsespolitikk. Disse retningslinjene gjelder for enhver nøkkel som ikke har en utløpsverdi.

De inkluderer:

Noeviction

Denne utkastelsespolitikken forteller Redis om ikke å fjerne noen data når minnegrensen er nådd. I stedet vil Redis returnere en feil og ikke klarer å kjøre Data -kommandoen.

Denne policyen er sterkt anvendelig når du trenger å fjerne nøklene manuelt eller forhindre utilsiktet datatap.

Allkeys-lru

Den andre policyen er Allkeys-lru. Denne typen policyer gir minst mulig brukt nøkkel eller LRU.

Denne policyen forutsetter at du ikke trenger de nylig brukte nøklene og sliter dem. Det forhindrer at Redis feiler ut i tilfelle en minnegrense.

Allkeys-Random

Denne policyen vil fjerne nøklene i enhver tilfeldig rekkefølge. Dette er en utmerket policy når nøklene i databasen din er av like stor betydning.

Flytende utkastelsespolitikk

Disse typer utkastelsespolitikker er avhengige av nøkler med utløpsverdier. De inkluderer:

Volatie-Random

Denne utkastelsespolitikken fjerner nøkler med en utløpsverdi i enhver tilfeldig rekkefølge. Det ligner på Allkeys-tilfeldige policyer, bortsett fra at den bare fjerner utløpte nøkler.

Flyktig-ttl

Den flyktige TTL-policyen fjerner nøkler med utløpstid, men velger den med den korteste tiden til å leve først.

Flyktig-lru

I likhet med flyktige-TTL, men fjerner de minst brukte nøklene først.

Konklusjon

Dette er en introduksjon til Redis MaxMemory and Eviction Policies. Du kan lære mer om Redis Eviction -regler i ressursen nedenfor.

https: // redis.IO/emner/LRU-cache