Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 34045|Antwoord: 6

[Bron] .NET gebruikt de Redis-cache voor vervalmeldingen

[Link kopiëren]
Geplaatst op 22-8-2020 10:34:59 | | | |
Bij het uitvoeren van bepaalde getimede bewerkingen hebben we feedback nodig over de resultaten. Bijvoorbeeld, bestellingen worden automatisch verwijderd na vervaldatum, bestellingen automatisch geprezen na enkele dagen, onbetaalde bestellingen worden na 15 minuten gesloten, enzovoort, wat kan worden afgerond met behulp van bepaalde getimede taakframeworks of pollingmethoden. Dit artikel gebruikt het Redis geavanceerde mechanisme voor het vervalen van vervaldatumgebeurtenissen, gecombineerd met .NET/C#-code om zakelijke vereisten te voltooien.

Introductie

Gebruiksscenario's: 1. In de betalingsbranche worden onbetaalde bestellingen automatisch gesloten 2. Herinneringen aan vervaldatum van de cache

In het algemeen kunnen we de timingservice gebruiken om de automatische afsluiting van onbetaalde orders te verwerken, zoals het elke minuut oproepen van de interface om onbetaalde en verlopen orders te verwerken, maar in dit geval verbruikt het de computerprestaties, zelfs als er geen order is, wordt deze elke minuut verwerkt, en de maximale vertraging van de orderverwerkingstijd is 59 seconden, en de timingservice moet altijd beschikbaar zijn

Wat willen we dus doen? Alleen als er onbetaalde en verlopen bestellingen zijn met lage latency, kunnen we het cache-vervalmechanisme van Edis gebruiken om het abonnement te pushen.

Redis-abonnement

Wijzig de notify-keyspace-events Ex in het configuratiebestand redis.conf

Om cupresources te besparen, zijn evenementmeldingen standaard niet ingeschakeld, en standaard is notify-keyspace-events

# K-sleutelruimte melding, <db>voorafgegaan door __keyspace@__
# E key event melding, <db>voorafgegaan door __keysevent@__
# g del, expipre, rename en andere soorten generieke commando's, ...
# $string bevel
# L Lijst bevel
#s Stel het commando in
# h Hash-commando
# z geordend set command
# x Vervaldatum (gegenereerd elke keer dat een sleutel vervalt)
# e uitzettingsgebeurtenis (gegenereerd wanneer de sleutel is gewist wanneer het geheugen vol is)
# Een g$lshzxe alias, dus "AKE" betekent alle gebeurtenissen


Notify-Keyspace-events "KX" geeft aan dat je wilt monitoren op ongeldigverklaringsgebeurtenissen voor een sleutel. Het instellen van de parameter op de string AKE betekent dat je alle soorten meldingen moet versturen.

Ik heb redis as service op mijn machine geïnstalleerd, het configuratiebestand redis.windows.conf aangepast en moest de configuratie van redis opnieuw starten om van kracht te worden.

.NET/C# codevoorbeeld

Het pakket is als volgt:



aanroepen



Laten we proberen een cache te schrijven met redis-cli.





Je kunt je zelfs abonneren op cache-vervalmeldingen door het volgende commando uit te voeren via redis-cli:




Wanneer N clients zich abonneren op meldingen van cache-vervalgebeurtenissen, zal Redis N gebruikers hetzelfde vervalmelding melden, niet slechts één van de clients, zoals weergegeven in de onderstaande figuur:



C# broncode downloaden:

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

samenvatting

Redis pub/sub is een onbetrouwbaar berichtmechanisme, het slaat geen informatie op, het wordt alleen online doorgestuurd, en er is zeker geen ack-bevestigingsmechanisme, en alleen het abonnementsgedeelte wordt doorgestuurd, dus Keyspace Notifications is ook een onbetrouwbaar notificatiesysteem; als ons bedrijf goede betrouwbaarheid nodig heeft, is dit niet de beste keuze. Over het algemeen raden we RabbitMQ's DLX (Dead-Letter-Exchange) aan om dit te implementeren, wat de vertraagde wachtrijfunctie is. Het is alleen zo dat de oplossing van Edis makkelijker te implementeren is en goedkoper in gebruik. Het is nog steeds erg handig voor bedrijven die geen hoge betrouwbaarheid nodig hebben.




Vorig:.NET Core 3.1 Installatie Chinese Smart Prompt
Volgend:.NET krijgt niet de volledige referentieassembly.
Geplaatst op 29-8-2020 14:33:18 |
Leer leren
Geplaatst op 30-11-2021 13:16:47 |
Leer het
Geplaatst op 30-11-2021 13:21:02 |
Redis pub/sub is een onbetrouwbaar berichtmechanisme, het slaat geen informatie op, het wordt alleen online doorgestuurd, en er is zeker geen ack-bevestigingsmechanisme, en alleen het abonnementsgedeelte wordt doorgestuurd, dus Keyspace Notifications is ook een onbetrouwbaar notificatiesysteem; als ons bedrijf goede betrouwbaarheid nodig heeft, is dit niet de beste keuze. Over het algemeen raden we RabbitMQ's DLX (Dead-Letter-Exchange) aan om dit te implementeren, wat de vertraagde wachtrijfunctie is. Het is alleen zo dat de oplossing van Edis makkelijker te implementeren is en goedkoper in gebruik. Het is nog steeds erg handig voor bedrijven die geen hoge betrouwbaarheid nodig hebben.
Geplaatst op 2022-24 17:42:43 |
Kijk, leer
Geplaatst op 2-3-2022 15:25:00 |
Leer het
Geplaatst op 27-7-2022 16:40:13 |
Leer leren
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com