Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 34045|Svar: 6

[Kilde] .NET bruger Redis-cache til udløbsnotifikationer

[Kopier link]
Opslået den 22-8-2020 10:34:59 | | | |
Når vi udfører visse tidsbestemte operationer, har vi brug for feedback på resultaterne. For eksempel slettes ordrer automatisk efter udløb, ordrer bliver automatisk rost efter få dage, ubetalte ordrer lukkes efter 15 minutter osv., hvilket kan gennemføres ved hjælp af nogle tidsbestemte task-rammer eller polling-metoder. Denne artikel bruger Redis avancerede feature cache udløbshændelsesmeddelelsesmekanisme kombineret med .NET/C#-kode til at opfylde forretningskrav.

Indførelsen

Brugsscenarier: 1. I betalingsbranchen lukkes ubetalte ordrer automatisk 2. Cache-udløbspåmindelser

Generelt kan vi bruge tidstjenesten til automatisk lukning af ubetalte ordrer, såsom at kalde interfacet hvert minut for at behandle ubetalte og udløbne ordrer, men i dette tilfælde vil det forbruge computerens ydeevne, selv hvis der ikke er nogen ordre, behandles den hvert minut, og den maksimale forsinkelse for ordrebehandlingstiden vil være 59 sekunder, og timing-tjenesten skal altid være tilgængelig

Så hvad vil vi gøre? Når der er ubetalte og udløbne ordrer med lav latenstid? Vi kan bruge Redis' cache-udløbsmekanisme til at presse abonnementet.

Redis-abonnement

Ændr notify-keyspace-events Ex i konfigurationsfilen redis.conf

For at spare koppens ressourcer er begivenhedsnotifikationer ikke slået til som standard, og standarden er notify-keyspace-events

# K tastepladsnotifikation, <db>foranstillet med __keyspace@__
# E-nøglebegivenhedsnotifikation, <db>foranstillet med __keysevent@__
# g del, expipre, omdøb og andre typer generiske kommandoer, ...
# $string kommando
# L List kommando
#s Sæt kommando
# h Hash-kommando
# z ordnet set-kommando
# x udløbsbegivenhed (genereret hver gang en nøgle udløber)
# e udsættelsesbegivenhed (genereres, når nøglen er ryddet, når hukommelsen er fuld)
# Et g$lshzxe alias, så "AKE" betyder alle begivenheder


Notify-Keyspace-events "KX" angiver, at du vil overvåge for ugyldiggørelseshændelser for en nøgle. At sætte parameteren til strengen AKE betyder, at alle typer notifikationer skal sendes.

Jeg installerede redis som en service på min maskine, ændrede redis.windows.conf-konfigurationsfilen og måtte genstarte redis-servicekonfigurationen for at træde i kraft.

.NET/C#-kodeeksempel

Pakken er som følger:



Påberåbe sig



Lad os prøve at skrive en cache med redis-cli.





Faktisk kan du også abonnere på cache-udløbsmeddelelser ved at udføre følgende kommando via redis-cli:




Når N klienter abonnerer på cache-udløbshændelsesmeddelelser, vil Redis underrette N brugere om den samme udløbsmeddelelse, ikke kun én af klienterne, som vist i figuren nedenfor:



C# kildekode download:

https://down.itsvse.com/item/17856.html

resumé

Redis pub/sub er en upålidelig beskedmekanisme, den gemmer ikke information, videresender kun online, og der findes bestemt ingen ack-bekræftelsesmekanisme, og kun abonnementssegmentet vil blive videresendt, så Keyspace Notifications er også et upålideligt notifikationssystem; hvis vores virksomhed har brug for god pålidelighed, er det ikke det bedste valg. Generelt anbefaler vi RabbitMQ's DLX (Dead-Letter-Exchange) til at implementere det, som er den forsinkede køfunktion. Det er bare, at Redis' løsning er lettere at implementere og billigere at drive. Det er stadig meget bekvemt for virksomheder, der ikke kræver høj pålidelighed.




Tidligere:.NET Core 3.1 Installation Kinesisk Smart-prompt
Næste:.NET får ikke den fulde reference-assembly
Opslået den 29-8-2020 14:33:18 |
Lær at lære
Opslået den 30-11-2021 13:16:47 |
Lær det
Opslået den 30-11-2021 13:21:02 |
Redis pub/sub er en upålidelig beskedmekanisme, den gemmer ikke information, videresender kun online, og der findes bestemt ingen ack-bekræftelsesmekanisme, og kun abonnementssegmentet vil blive videresendt, så Keyspace Notifications er også et upålideligt notifikationssystem; hvis vores virksomhed har brug for god pålidelighed, er det ikke det bedste valg. Generelt anbefaler vi RabbitMQ's DLX (Dead-Letter-Exchange) til at implementere det, som er den forsinkede køfunktion. Det er bare, at Redis' løsning er lettere at implementere og billigere at drive. Det er stadig meget bekvemt for virksomheder, der ikke kræver høj pålidelighed.
Opslået den 2022-2-14 kl. 17:42:43 |
Se, lær
Opslået den 2-3-2022 kl. 15:25:00 |
Lær det
Opslået den 27-7-2022 16:40:13 |
Lær at lære
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com