Vilken är mekanismen för att upprätthålla begränsningar för tillgången till en resurs när flera trådar körs i Redis?
Vilken är mekanismen för att upprätthålla begränsningar för tillgången till en resurs när flera trådar körs i Redis?

Video: Vilken är mekanismen för att upprätthålla begränsningar för tillgången till en resurs när flera trådar körs i Redis?

Video: Vilken är mekanismen för att upprätthålla begränsningar för tillgången till en resurs när flera trådar körs i Redis?
Video: Redis 6 (ACLs, Threaded I/O, the new Proxy & RESP3) 2024, November
Anonim

låsa

Med tanke på detta, hur hanterar Redis samtidighet?

Ett entrådigt program kan definitivt ge samtidighet på I/O-nivå genom att använda en I/O (de)multiplexeringsmekanism och en händelseloop (vilket är vad Redis gör det ). Parallellism har en kostnad: med flera uttag/flera kärnor du kan hitta på modern hårdvara är synkronisering mellan trådar extremt dyr.

Är det också minnespolicyn som returnerar fel när minnesgränsen nås och klienten försöker utföra kommandon som resulterar i högre minnesanvändning? När den angivna mängden minne är nådde , är det möjligt att välja bland olika beteenden, som kallas politik . Redis kan bara returnera fel för kommandon det kunde resultera i mer minne varelse Begagnade , eller så kan den avhysa några gamla data för att lämna tillbaka tillbaka till angivet begränsa varje gång ny data läggs till.

Med avseende på detta, vilken av följande är en fördel med pipelining i Redis?

Fördel med pipelining Den huvudsakliga fördel av Redis pipelining påskyndar Redis prestanda. Det förbättrar protokollets prestanda drastiskt på grund av att flera kommandon körs samtidigt.

Är Redis tråd säker?

Gå in i Redis GIL Som tur är har Salvatore Sanfilippo lagt till en revolutionerande förändring precis nära mållinjen Redis 4.0 och utgåvan av modulernas API: Trådsäker Kontexter och det globala låset. Tanken är enkel. Medan Redis fortfarande är enkelgängad, en modul kan köra många trådar.

Rekommenderad: