Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 34045|Odpoveď: 6

[Zdroj] .NET používa Redis cache na oznámenia o expirácii

[Kopírovať odkaz]
Zverejnené 2020-8-22 10:34:59 | | | |
Pri vykonávaní určitých časovaných operácií potrebujeme spätnú väzbu k výsledkom. Napríklad objednávky sa automaticky mažú po expirácii, objednávky sa automaticky chvália po niekoľkých dňoch, nevyplatené objednávky sa uzatvárajú po 15 minútach a podobne, čo je možné dokončiť pomocou niektorých časovo obmedzených rámcov úloh alebo metód prieskumu. Tento článok využíva mechanizmus upozorňovania na udalosť vypršania cache pomocou pokročilých funkcií Redis v kombinácii s kódom .NET/C# na splnenie obchodných požiadaviek.

Zavedenie

Scenáre použitia: 1. V platobnom biznise sa nezaplatené objednávky automaticky uzatvárajú 2. Pripomienky o expirácii cache

Vo všeobecnosti môžeme použiť časovaciu službu na spracovanie automatického uzatvárania nezaplatených objednávok, napríklad volaním rozhrania každú minútu na spracovanie nezaplatených a expirovaných objednávok, ale v tomto prípade to spotrebuje výkon počítača, aj keď objednávka nie je, bude spracovaná každú minútu a maximálne oneskorenie spracovania objednávky bude 59 sekúnd, pričom časovacia služba musí byť vždy dostupná

Čo teda chceme robiť? Len keď sú nevyplatené a expirované objednávky s nízkou latenciou, môžeme použiť mechanizmus expirácie cache od Redisu na pushovanie predplatného.

Predplatné Redis

Upravte notify-keyspace-events Ex v konfiguračnom súbore redis.conf

Aby sa ušetrili zdroje pohára, notifikácie udalostí nie sú predvolene zapnuté a predvolené je notify-keyspace-events

# Upozornenie na klávesovú medzeru K, s <db>predponou __keyspace@__
# Upozornenie na udalosť klávesu E, s <db>predponou __keysevent@__
# g del, expipre, rename a iné typy všeobecných príkazov, ...
# $string príkaz
# l Zoznam príkazov
#s Nastaviť príkaz
# h Hash príkaz
# z ordered set príkaz
# x Udalosť vypršania (generovaná vždy, keď kľúč vyprší)
# e eviction event (generované, keď je kľúč vyčistený, keď je pamäť plná)
# Alias g$lshzxe, takže "AKE" znamená všetky udalosti


Notify-keyspace-events "kx" naznačuje, že chcete sledovať udalosti neplatnosti kľúča. Nastavenie parametra na reťazec AKE znamená odosielanie všetkých typov notifikácií.

Nainštaloval som redis ako službu na svojom počítači, upravil konfiguračný súbor redis.windows.conf a musel som reštartovať konfiguráciu služby Redis, aby nadobudla účinnosť.

Príklad kódu .NET/C#

Balík je nasledovný:



vyvolať



Skúsme napísať cache pomocou redis-cli.





V skutočnosti sa môžete prihlásiť na odber oznámení o vypršaní cache vykonaním nasledujúceho príkazu cez redis-cli:




Keď sa N klientov prihlási na oznámenia o udalostiach vypršania cache, redis upozorní N používateľov na tú istú správu o vypršaní, nie len o jednom z klientov, ako je znázornené na obrázku nižšie:



Stiahnutie zdrojového kódu v C#:

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

súhrn

Redis pub/sub je nespoľahlivý mechanizmus správ, neukladá informácie, iba ich preposiela online, a určite neexistuje žiadny mechanizmus potvrdenia ACK, presmerovaný bude len segment predplatného, takže Keyspace Notifications je tiež nespoľahlivý notifikačný systém, ak náš biznis potrebuje dobrú spoľahlivosť, nie je to najlepšia voľba. Vo všeobecnosti odporúčame DLX (Dead-Letter-Exchange) od RabbitMQ na jeho implementáciu, čo je funkcia oneskorenej fronty. Lenže Redisovo riešenie je jednoduchšie na implementáciu a lacnejšie na prevádzku. Stále je to veľmi pohodlné pre firmy, ktoré nevyžadujú vysokú spoľahlivosť.




Predchádzajúci:.NET Core 3.1 Inštalácia Čínsky inteligentný prompt
Budúci:.NET nedostáva kompletnú referenčnú assemblerovú zostavu
Zverejnené 29. 8. 2020 o 14:33:18 |
Naučte sa učiť
Zverejnené 30. 11. 2021 o 13:16:47 |
Nauč sa to
Zverejnené 30. 11. 2021 o 13:21:02 |
Redis pub/sub je nespoľahlivý mechanizmus správ, neukladá informácie, iba ich preposiela online, a určite neexistuje žiadny mechanizmus potvrdenia ACK, presmerovaný bude len segment predplatného, takže Keyspace Notifications je tiež nespoľahlivý notifikačný systém, ak náš biznis potrebuje dobrú spoľahlivosť, nie je to najlepšia voľba. Vo všeobecnosti odporúčame DLX (Dead-Letter-Exchange) od RabbitMQ na jeho implementáciu, čo je funkcia oneskorenej fronty. Lenže Redisovo riešenie je jednoduchšie na implementáciu a lacnejšie na prevádzku. Stále je to veľmi pohodlné pre firmy, ktoré nevyžadujú vysokú spoľahlivosť.
Zverejnené 14. 2. 2022 o 17:42:43 |
Pozri, uč sa
Zverejnené 2022-3-2 o 15:25:00 |
Nauč sa to
Zverejnené 27.7.2022 o 16:40:13 |
Naučte sa učiť
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com