Hva er mekanismen for å håndheve grenser for tilgangen til en ressurs når flere tråder kjøres i Redis?
Hva er mekanismen for å håndheve grenser for tilgangen til en ressurs når flere tråder kjøres i Redis?

Video: Hva er mekanismen for å håndheve grenser for tilgangen til en ressurs når flere tråder kjøres i Redis?

Video: Hva er mekanismen for å håndheve grenser for tilgangen til en ressurs når flere tråder kjøres i Redis?
Video: Daniel Schmachtenberger: Will Technology Destroy Us? 2024, November
Anonim

låse

Med tanke på dette, hvordan håndterer Redis samtidighet?

Et enkelt-tråds program kan definitivt gi samtidighet på I/O-nivå ved å bruke en I/O (de)multipleksmekanisme og en hendelsesløkke (som er det Redis gjør det ). Parallellisme har en kostnad: med flere sokkel/flere kjerner du kan finne på moderne maskinvare, er synkronisering mellom tråder ekstremt dyrt.

Er det også minnepolicyen som returnerer feil når minnegrensen er nådd og klienten prøver å utføre kommandoer som resulterer i høyere minnebruk? Når den angitte mengden av hukommelse er nådd , er det mulig å velge mellom forskjellige atferder, kalt retningslinjer . Redis kan bare returnere feil til kommandoer det kunne resultere i mer minne å være brukt , eller det kan kaste ut noen gamle data for å komme tilbake tilbake til spesifisert grense hver gang nye data legges til.

I forhold til dette, hvilken av de følgende er en fordel med pipelining i Redis?

Fordel med pipelining Hoved fordel av Redis pipelining setter fart på Redis opptreden. Det forbedrer protokollytelsen drastisk på grunn av flere kommandoer samtidig.

Er Redis-tråden trygg?

Tast inn Redis GIL Heldigvis har Salvatore Sanfilippo lagt til en revolusjonerende endring like nær målstreken til Redis 4.0 og utgivelsen av modules API: Trådsikker Kontekster og den globale låsen. Ideen er enkel. Samtidig som Redis fortsatt forblir enkeltgjenget, en modul kan kjøre mange tråder.

Anbefalt: