Denne artikkelen er en speilartikkel om maskinoversettelse, vennligst klikk her for å hoppe til originalartikkelen.

Utsikt: 34045|Svare: 6

[Kilde] .NET bruker Redis-cache for utløpsvarsler

[Kopier lenke]
Publisert 22.08.2020 kl. 10:34:59 | | | |
Når vi utfører visse tidsbestemte operasjoner, trenger vi tilbakemelding på resultatene. For eksempel slettes ordrer automatisk etter utløp, ordrer blir automatisk rost etter noen dager, ubetalte ordrer stenges etter 15 minutter, osv., noe som kan fullføres ved hjelp av noen tidsbestemte oppgaverammer eller pollingmetoder. Denne artikkelen bruker Redis avanserte funksjonscache-utløpshendelsesvarslingsmekanisme kombinert med .NET/C#-kode for å fullføre forretningskrav.

Introduksjon

Bruksscenarier: 1. I betalingsbransjen lukkes ubetalte ordrer automatisk 2. Påminnelser om cache-utløp

Generelt kan vi bruke tidstjenesten til å behandle automatisk stenging av ubetalte ordrer, som å kalle grensesnittet hvert minutt for å behandle ubetalte og utgåtte ordrer, men i dette tilfellet vil det bruke datamaskinens ytelse, selv om det ikke er noen ordre, vil den bli behandlet hvert minutt, og maksimal forsinkelse i ordrebehandlingstiden vil være 59 sekunder, og tidstjenesten må alltid være tilgjengelig

Så hva vil vi gjøre når det er ubetalte og utløpte bestillinger med lav latensbehandling? Vi kan bruke Redis' cache-utløpsmekanisme for å pushe abonnementet.

Redis-abonnement

Endre notify-keyspace-events Ex i konfigurasjonsfilen redis.conf

For å spare koppressurser er hendelsesvarsler ikke aktivert som standard, og standarden er notify-keyspace-events

# K-tasteområdevarsling, <db>prefikset med __keyspace@__
# E-nøkkelhendelsesvarsel, <db>med prefikset __keysevent@__
# g del, expipre, rename og andre typer generiske kommandoer, ...
# $string kommando
# L List kommando
#s Sett kommando
# h Hash-kommando
# z ordnet sett-kommando
# x Utløpshendelse (generert hver gang en nøkkel utløper)
# e utkastelseshendelse (generert når nøkkelen slettes når minnet er fullt)
# Et g$lshzxe alias, så "AKE" betyr alle hendelser


Notify-Keyspace-events "KX" indikerer at du vil overvåke for ugyldiggjøringshendelser for en nøkkel. Å sette parameteren til strengen AKE betyr å sende alle typer varsler.

Jeg installerte redis as a service på maskinen min, endret redis.windows.conf-konfigurasjonsfilen, og måtte starte redis-tjenestekonfigurasjonen på nytt for at den skulle tre i kraft.

.NET/C#-kodeeksempel

Pakken er som følger:



påkalle



La oss prøve å skrive en cache med redis-cli.





Faktisk kan du også abonnere på varsler om cache-utløp ved å utføre følgende kommando via redis-cli:




Når N klienter abonnerer på varsler om cache-utløpshendelser, vil redis varsle N brukere om samme utløpsmelding, ikke bare én av klientene, som vist i figuren nedenfor:



Nedlasting av C# kildekode:

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

sammendrag

Redis pub/sub er en upålitelig meldingsmekanisme, den lagrer ikke informasjon, videresender kun online, og det finnes definitivt ingen ack-bekreftelsesmekanisme, og kun abonnementssegmentet vil bli videresendt, så Keyspace Notifications er også et upålitelig varslingssystem, hvis virksomheten vår trenger god pålitelighet, er ikke dette det beste valget. Generelt anbefaler vi RabbitMQs DLX (Dead-Letter-Exchange) for å implementere dette, som er den forsinkede køfunksjonen. Det er bare det at Redis' løsning er enklere å implementere og rimeligere å drive. Det er fortsatt veldig praktisk for bedrifter som ikke krever høy pålitelighet.




Foregående:.NET Core 3.1 installasjon kinesisk smartprompt
Neste:.NET får ikke den fullstendige referansesamlingen
Publisert 29.08.2020 kl. 14:33:18 |
Lær å lære
Publisert 30.11.2021 13:16:47 |
Lær det
Publisert 30.11.2021 13:21:02 |
Redis pub/sub er en upålitelig meldingsmekanisme, den lagrer ikke informasjon, videresender kun online, og det finnes definitivt ingen ack-bekreftelsesmekanisme, og kun abonnementssegmentet vil bli videresendt, så Keyspace Notifications er også et upålitelig varslingssystem, hvis virksomheten vår trenger god pålitelighet, er ikke dette det beste valget. Generelt anbefaler vi RabbitMQs DLX (Dead-Letter-Exchange) for å implementere dette, som er den forsinkede køfunksjonen. Det er bare det at Redis' løsning er enklere å implementere og rimeligere å drive. Det er fortsatt veldig praktisk for bedrifter som ikke krever høy pålitelighet.
Publisert 2022-2-14 17:42:43 |
Se, lær
Publisert 2022-3-2 15:25:00 |
Lær det
Publisert 27.07.2022 16:40:13 |
Lær å lære
Ansvarsfraskrivelse:
All programvare, programmeringsmateriell eller artikler publisert av Code Farmer Network er kun for lærings- og forskningsformål; Innholdet ovenfor skal ikke brukes til kommersielle eller ulovlige formål, ellers skal brukerne bære alle konsekvenser. Informasjonen på dette nettstedet kommer fra Internett, og opphavsrettstvister har ingenting med dette nettstedet å gjøre. Du må fullstendig slette innholdet ovenfor fra datamaskinen din innen 24 timer etter nedlasting. Hvis du liker programmet, vennligst støtt ekte programvare, kjøp registrering, og få bedre ekte tjenester. Hvis det foreligger noen krenkelse, vennligst kontakt oss på e-post.

Mail To:help@itsvse.com