Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 34045|Răspunde: 6

[Sursă] .NET folosește cache Redis pentru notificările de expirare

[Copiază linkul]
Postat la 2020-8-22 10:34:59 | | | |
Când efectuăm anumite operațiuni cronometrate, avem nevoie de feedback asupra rezultatelor. De exemplu, comenzile sunt eliminate automat după expirare, comenzile sunt lăudate automat după câteva zile, comenzile neachitate sunt închise după 15 minute etc., ceea ce poate fi realizat folosind anumite cadre de sarcini cronometrate sau metode de interogare. Acest articol folosește mecanismul avansat de notificare a evenimentelor de expirare a cache-ului Redis combinat cu cod .NET/C# pentru a îndeplini cerințele de business.

Introducere

Scenarii de utilizare: 1. În afacerile de plăți, comenzile neachitate sunt închise automat 2. Memento-uri de expirare a cache-ului

În general, putem folosi serviciul de cronometratare pentru a procesa închiderea automată a comenzilor neplătite, cum ar fi să apelăm interfața la fiecare minut pentru a procesa comenzile neplătite și expirate, dar în acest caz va consuma performanța computerului, chiar dacă nu există o comandă, va fi procesată la fiecare minut, iar timpul maxim de procesare a comenzilor va fi de 59s, iar serviciul de cronometratare trebuie să fie mereu disponibil

Deci, ce vrem să facem? Doar atunci când există comenzi neplătite și expirate cu procesare cu latență scăzută, putem folosi mecanismul de expirare cache al Redis pentru a împinge abonamentul.

Abonament Redis

Modifică notify-keyspace-events Ex în fișierul de configurare redis.conf

Pentru a economisi resurse cup, notificările de evenimente nu sunt activate implicit, iar implicit este notify-keyspace-events

# Notificare în spațiul tastelor K, <db>prefixat cu __keyspace@__
# Notificarea evenimentului cheie E, <db>prefixată cu __keysevent@__
# g del, expipre, rename și alte tipuri de comenzi generice, ...
# $string comandă
# Comandă l List
#s Comanda Set
# h Comandă Hash
# Comanda set ordonat z
# x Eveniment de expirare (generat de fiecare dată când o cheie expiră)
# Eveniment de evacuare (generat când cheia este ștearsă când memoria este plină)
# Un alias g$lshzxe, deci "AKE" înseamnă toate evenimentele


Notify-keyspace-events "KX" indică faptul că doriți să monitorizați evenimentele de invalidare pentru o cheie. Setarea parametrului la șirul AKE înseamnă trimiterea tuturor tipurilor de notificări.

Am instalat redis ca serviciu pe calculatorul meu, am modificat fișierul de configurare redis.windows.conf și a trebuit să repornesc configurația serviciului redis pentru a intra în vigoare.

Exemplu de cod .NET/C#

Pachetul este următorul:



Invoca



Hai să încercăm să scriem un cache cu redis-cli.





De fapt, te poți abona și la notificările de expirare a cache-ului executând următoarea comandă prin redis-cli:




Când N clienți se abonează la notificări de evenimente de expirare în cache, Redis va notifica N utilizatori despre același mesaj de expirare, nu doar unul dintre clienți, așa cum se arată în figura de mai jos:



Descărcare cod sursă C#:

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

rezumat

Redis pub/sub este un mecanism de mesaje nesigur, nu stochează informații, redirecționează doar online, iar cu siguranță nu există un mecanism de confirmare ack, iar doar segmentul de abonament va fi redirecționat, așa că Keyspace Notifications este și el un sistem de notificări nesigur, dacă afacerea noastră are nevoie de fiabilitate bună, atunci aceasta nu este cea mai bună alegere. În general, recomandăm DLX (Dead-Letter-Exchange) de la RabbitMQ pentru a o implementa, care este funcția de coadă întârziată. Doar că soluția lui Redis este mai ușor de implementat și mai ieftină de operat. Este totuși foarte convenabil pentru afacerile care nu au nevoie de o fiabilitate ridicată.




Precedent:.NET Core 3.1 Instalare Prompt inteligent chinezesc
Următor:.NET nu primește asamblarea completă a asamblării de referință
Postat la 29-08-2020 14:33:18 |
Învață să înveți
Postat la 30-11-2021 13:16:47 |
Învață-l
Postat la 30-11-2021 13:21:02 |
Redis pub/sub este un mecanism de mesaje nesigur, nu stochează informații, redirecționează doar online, iar cu siguranță nu există un mecanism de confirmare ack, iar doar segmentul de abonament va fi redirecționat, așa că Keyspace Notifications este și el un sistem de notificări nesigur, dacă afacerea noastră are nevoie de fiabilitate bună, atunci aceasta nu este cea mai bună alegere. În general, recomandăm DLX (Dead-Letter-Exchange) de la RabbitMQ pentru a o implementa, care este funcția de coadă întârziată. Doar că soluția lui Redis este mai ușor de implementat și mai ieftină de operat. Este totuși foarte convenabil pentru afacerile care nu au nevoie de o fiabilitate ridicată.
Postat la 2022-2-14 17:42:43 |
Uite, învață
Postat la 2022-3-2 15:25:00 |
Învață-l
Postat la 2022-7-27 16:40:13 |
Învață să înveți
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com