- nike air max 90 pas cher
- 16370
|
När vi utför vissa tidsbestämda åtgärder behöver vi en återkoppling av resultatet. Till exempel: order raderas automatiskt efter utgångsdatumet, order granskas automatiskt efter några dagar, obetalda order stängs efter 15 minuter, etc. Dessa kan göras med hjälp av något tidsbestämt uppgiftsramverk eller polling för att uppfylla kraven. I den här artikeln använder vi Redis avancerade funktion för avisering av cache-utgångshändelser, kombinerat med .NET/C#-kod för att uppfylla affärskraven.
NET/C#-kod för att uppfylla verksamhetskraven.
Användningsscenario: 1. Betalningsverksamhet, obetalda order stängs automatiskt 2.
I allmänhet, för automatisk stängning av obetalda order, kan vi använda en tidsbestämd tjänst för att uppnå, till exempel varje minut för att ringa gränssnittet för att hantera obetalda och utgångna order, men i det här fallet kommer det för det första att vara en förlust av datorprestanda, även om det inte finns någon order kommer att behandlas varje minut, och för det andra kommer noggrannheten för orderbehandlingstiden för den maximala förseningen att vara 59s, och för att säkerställa att Tidtagningstjänsten alltid är tillgänglig
att vi bara vill när det finns obetalda och utgångna order och bearbetning med låg latens hur man gör det, kan vi genom redis cache-utgångsmekanism prenumerera på push-bearbetning.
Redis-prenumeration
Ändra konfigurationsfilen redis.conf: notify-keyspace-events Ex
För att spara cupresurser är händelseavisering inte aktiverad som standard, standard är notify-keyspace-events ""
# K meddelanden om nyckelutrymme, med prefixet __keyspace@<db>__ # E meddelande om nyckelrymdshändelse, med prefixet __keysevent@<db>__ # g Meddelande om typoberoende generiska kommandon som del , expipre , rename , ... # $ Strängkommandon # l Listkommandon # s Set-kommando # h Hash-kommando # z Ordered Set-kommando # x Expire-händelse (genereras varje gång en nyckel löper ut) # e Eviction event (genereras när en nyckel rensas när minnet är fullt) # A Alias för g$lshzxe, så "AKE" betyder alla händelser.
notify-keyspace-events "kx" anger att du vill övervaka felhändelser för en nyckel. Om du ställer in parametern till strängen AKE innebär det att du skickar alla typer av meddelanden.
Jag installerade redis som en tjänst lokalt och ändrade konfigurationsfilen redis.windows.conf, vilket kräver en omstart av redis-tjänstkonfigurationen för att träda i kraft.
Exempel på NET/C#-kod
Paketet är som följer:
Anrop
Låt oss prova att skriva en slumpmässig cache via redis-cli.
Det är faktiskt möjligt att prenumerera på meddelanden om cache-utgång genom att utföra följande kommando via redis-cli:
När det finns N klienter som prenumererar på händelsenotifieringen om cacheutgång, kommer redis att meddela samma utgångsmeddelande till N användare, och kommer inte att meddela endast en av klienterna, som visas nedan:
c# källkod nedladdning:
h ttps:// down.itsvse.com/item/17856.html
Sammanfattning
Redis pub / sub är inte en pålitlig meddelandemekanism, han kommer inte att göra lagring av information, bara vidarebefordran online, och verkligen ingen ack-bekräftelsemekanism, dessutom prenumererar bara på segmentet som lyssnar på att vidarebefordra, så Keyspace Notifications är också opålitligt meddelandesystem, om vår verksamhet är att kräva mycket god tillförlitlighet, då är detta också tungt sätt är inte Om vår verksamhet behöver god tillförlitlighet är detta inte det bästa valet. I allmänhet rekommenderar vi RabbitMQ: s DLX (Dead-Letter-Exchange) för att uppnå detta, det vill säga den fördröjda köfunktionen. Redis-lösningen är mycket enklare att implementera och billigare att driva. Det är också mycket bekvämt för företag som inte kräver en hög nivå av tillförlitlighet. |
Föregående: NET Core 3.1 installation av kinesiska smarta tipsNästa: NET获取不到完整的引用 Assembly程序集
|