Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 34045|Odpověď: 6

[Zdroj] .NET používá Redis cache pro oznámení o expiraci

[Kopírovat odkaz]
Zveřejněno 22. 8. 2020 10:34:59 | | | |
Při provádění určitých časovaných operací potřebujeme zpětnou vazbu k výsledkům. Například objednávky jsou automaticky mazány po expiraci, objednávky jsou automaticky chváleny po několika dnech, nevyplacené objednávky jsou uzavřeny po 15 minutách atd., což lze dokončit pomocí některých časovaných rámců úkolů nebo metod průzkumu. Tento článek využívá mechanismus upozornění na událost expirace cache v rámci Redis s kódem .NET/C# k vyplnění obchodních požadavků.

Úvod

Scénáře použití: 1. V platební byznysu jsou nezaplacené objednávky automaticky uzavřeny 2. Připomínky vypršení cache

Obecně můžeme službu časování využít k automatickému uzavření nezaplacených příkazů, například voláním rozhraní každou minutu pro zpracování nezaplacených a expirovaných příkazů, ale v tomto případě to spotřebuje výkon počítače, i když objednávka není, bude zpracována každou minutu a maximální zpoždění zpracování objednávky bude 59 sekund, přičemž služba pro časování musí být vždy dostupná

Co tedy chceme dělat? Až když jsou nezaplacené a expirované objednávky s nízkou latencí zpracování, můžeme použít mechanismus expirace cache od Redis k posunutí předplatného.

Předplatné Redis

Upravte notify-keyspace-events Ex v konfiguračním souboru redis.conf

Aby se šetřily zdroje cupu, nejsou oznámení o událostech ve výchozím nastavení zapnuta a výchozí je notify-keyspace-events

# Oznámení o mezeru kláves K, <db>předpona __keyspace@__
# Oznámení o události klávesy E, s <db>předponou __keysevent@__
# g del, expipre, rename a další typy obecných příkazů, ...
# $string příkaz
# l Seznam příkazů
#s Nastavit příkaz
# h Hash příkaz
# z ordered set command
# x Událost vypršení platnosti (generováno pokaždé, když klíč vyprší)
# e Evaviction Event (generováno, když je klíč vymazán, když je paměť plná)
# Alias g$lshzxe, takže "AKE" znamená všechny události


Notify-keyspace-events "kx" znamená, že chcete sledovat události zneplatnění klíče. Nastavení parametru na řetězec AKE znamená odesílání všech typů oznámení.

Nainstaloval jsem redis jako službu na svém počítači, upravil konfigurační soubor redis.windows.conf a musel jsem restartovat konfiguraci služby Redis, aby se to projevilo.

Příklad kódu .NET/C#

Balíček je následující:



vyvolat



Zkusme napsat cache pomocí redis-cli.





Ve skutečnosti se můžete také přihlásit k odběru oznámení o vypršení cache provedením následujícího příkazu pomocí redis-cli:




Když se N klientů přihlásí k oznámení o událostech expirace cache, redis upozorní N uživatelů na stejnou zprávu o vypršení platnosti, nikoli pouze o jednom z klientů, jak je znázorněno na obrázku níže:



Stažení zdrojového kódu v C#:

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

shrnutí

Redis pub/sub je nespolehlivý mechanismus zpráv, neukládá informace, přeposílá pouze online, rozhodně neexistuje žádný mechanismus potvrzení akreditace, přesměrován je pouze segment předplatného, takže Keyspace Notifications je také nespolehlivý systém notifikací, pokud naše firma potřebuje dobrou spolehlivost, není to nejlepší volba. Obecně doporučujeme DLX (Dead-Letter-Exchange) od RabbitMQ k implementaci, což je funkce delayed queue. Jde jen o to, že Redisovo řešení je jednodušší na implementaci a levnější na provoz. Stále je velmi pohodlný pro firmy, které nevyžadují vysokou spolehlivost.




Předchozí:Instalace .NET Core 3.1 Čínský chytrý prompt
Další:.NET nepřijímá kompletní referenční assembler
Zveřejněno 29. 8. 2020 14:33:18 |
Učte se učit
Zveřejněno 30. 11. 2021 13:16:47 |
Nauč se to
Zveřejněno 30. 11. 2021 13:21:02 |
Redis pub/sub je nespolehlivý mechanismus zpráv, neukládá informace, přeposílá pouze online, rozhodně neexistuje žádný mechanismus potvrzení akreditace, přesměrován je pouze segment předplatného, takže Keyspace Notifications je také nespolehlivý systém notifikací, pokud naše firma potřebuje dobrou spolehlivost, není to nejlepší volba. Obecně doporučujeme DLX (Dead-Letter-Exchange) od RabbitMQ k implementaci, což je funkce delayed queue. Jde jen o to, že Redisovo řešení je jednodušší na implementaci a levnější na provoz. Stále je velmi pohodlný pro firmy, které nevyžadují vysokou spolehlivost.
Zveřejněno 14. 2. 2022 17:42:43 |
Podívej, uč se
Zveřejněno 2022-3-2 15:25:00 |
Nauč se to
Zveřejněno 27. 7. 2022 16:40:13 |
Učte se učit
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com