架构师_程序员_码农网

A Hämta lösenord
Registrera dig

QQ登录

Bara ett steg för att komma igång

Sök
Visningar:18727|Svar: 6
打印 上一主题 下一主题

[NET använder Redis cache för att meddela att cachen har löpt ut

[Kopiera länk] .
NET_Cache
L 跳转到指定楼层
ägare
2020-8-22 10:34:59|只看该作者回帖奖励|ReverseBrowse|Läsläge
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 tips
Nästa: NET获取不到完整的引用 Assembly程序集
NET / C # använder Redis för att implementera Bloom-algoritmen baserad på BitMap och publicerar bara de tekniska svårigheter som uppstått i praktiken, för att inte vilseleda andra.
Jag är inte säker på att jag kommer att kunna göra det....
Kodjordbrukarnätverket, endast publicerat i praktiken, stötte på tekniska svårigheter, vilseleda inte andra.
bänk
2021-11-30 13:16:47|只看该作者
Jag är inte säker på om jag kommer att kunna göra det.
Kodjordbrukarnätverket, endast publicerat i praktiken, stötte på tekniska svårigheter, vilseleda inte andra.
golv
2021-11-30 13:21:02|只看该作者
Redis pub / sub är en opå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 för 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. För företag som inte kräver hög tillförlitlighet är det fortfarande mycket bekvämt.
Kodbondenätverk, endast publicerat i övningsprocessen, stötte på tekniska svårigheter, vilseleda inte andra.
5#
Publicerad 2022-2-14 17:42:43|Endast Visa författare
Jag är inte säker på om du kommer att kunna göra det här.
Kodjordbrukarnätverket, endast publicerat i praktiken, stötte på tekniska svårigheter, vilseleda inte andra.
6#
2022-3-2 15:25:00|只看该作者
Jag är inte säker på att jag kommer att kunna göra det....
Kodjordbrukarnätverket, endast publicerat i praktiken, stötte på tekniska svårigheter, vilseleda inte andra.
jordan skor till salu
7#
2022-7-27 16:40:13|只看该作者
Jag är inte säker på att du kommer att kunna göra det.
Kodjordbrukarnätverket, endast publicerat i praktiken, stötte på tekniska svårigheter, vilseleda inte andra.
Du måste logga in innan du kan posta tillbaka Logga in | Registrera dig

D enna version av de integrerade reglerna


DISCLAIMER: All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer är begränsade till att endast användas för inlärnings- och forskningsändamål; ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars ska alla konsekvenser bäras av användarna själva. Denna webbplatsinformation från nätverket, upphovsrättstvister har inget att göra med denna webbplats. Du måste helt ta bort ovanstående innehåll från din dator inom 24 timmar efter nedladdningen. Om du gillar programmet, vänligen stöd den äkta programvaran, köp registreringen och få bättre äkta service. Om det finns något intrång, vänligen kontakta oss via e-post för att hantera det.

E-post To:help@itsvse.com

QQ| ( 鲁ICP备14021824号-2)|Sitemap

GMT+8, 2024-9-18 14:26

Snabbt svarTillbaka till toppenTillbaka till listan