Teatud ajapiiranguga toimingute tegemisel vajame tagasisidet tulemuste kohta. Näiteks tellimused kustutatakse automaatselt pärast aegumist, tellimusi kiidetakse automaatselt mõne päeva pärast, tasumata tellimused suletakse 15 minuti pärast jne, mida saab täita mõne ajastatud ülesanderaamistiku või küsitlusmeetodi abil. See artikkel kasutab Redis täiustatud funktsioonide vahemälu aegumissündmuse teavitusmehhanismi koos .NET/C# koodiga, et täita ärinõudeid.
Sissejuhatus
Kasutusstsenaariumid: 1. Makseäris suletakse tasumata tellimused automaatselt 2. Vahemälu aegumise meeldetuletused
Üldiselt saame kasutada ajastusteenust automaatse tasumata tellimuste sulgemiseks, näiteks helistab iga minuti tagant liidesele tasumata ja aegunud tellimuste töötlemiseks, kuid antud juhul kulutab see arvuti jõudlust – isegi kui tellimust pole, töödeldakse seda iga minuti järel ning maksimaalne viivitus tellimuse töötlemisel on 59 sekundit ning ajateenistus peab alati olema kättesaadav
Mida me tahame teha ainult siis, kui on maksmata ja aegunud tellimused madala latentsusega, saame kasutada Redis'i vahemälu aegumismehhanismi tellimuse surumiseks.
Redis tellimus
Muuda teavitusvõtmeruumi-sündmusi Ex konfiguratsioonifailis redis.conf
Tassi ressursside säästmiseks ei lülitata sündmuste teavitused vaikimisi sisse ning vaikimisi on notify-keyspace-events
# K klahvi ruumi teavitus, <db>eesliides __keyspace@__ # E võtmesündmuse teavitus, <db>eesliides __keysevent@__ # g del, expipre, rename ja muud üldised käsud, ... # $string käsk # l Loenda käsk #s Seadista käsk # h Hash käsk # z käsk seadistada käsk # x Aegumissündmus (genereeritakse iga kord, kui võti aegub) # e väljatõstmise sündmus (genereeritakse, kui võti on tühjendatud, kui mälu on täis) # G$lshzxe varjunimi, seega "AKE" tähendab kõiki sündmusi
notify-keyspace-events "kx" näitab, et soovid jälgida võtme kehtetuks muutmise sündmusi. Parameetri seadistamine stringiks AKE tähendab kõigi teavituste saatmist.
Paigaldasin Redis teenusena oma masinasse, muutsin redis.windows.conf konfiguratsioonifaili ja pidin redis'i teenuse konfiguratsiooni taaskäivitama, et see jõustuks.
.NET/C# koodinäide
Pakett on järgmine:
Tugineda
Proovime kirjutada vahemälu redis-cli-ga.
Tegelikult saad tellida vahemälu aegumisteavituse, käivitades järgmise käsu redis-cli kaudu:
Kui N klienti tellib vahemälu aegumissündmuse teavitused, teavitab redis sama aegumisteate N kasutajat, mitte ainult ühte klienti, nagu alloleval joonisel näidatud:
C# lähtekoodi allalaadimine:
https://down.itsvse.com/item/17856.html
Kokkuvõte
Redis pub/sub on ebausaldusväärne sõnumimehhanism, see ei salvesta infot, edastab ainult veebis ja kindlasti puudub ACK-kinnitusmehhanism, ainult tellimuse segment edastatakse, seega on Keyspace Notifications samuti ebausaldusväärne teavitussüsteem. Kui meie ettevõte vajab head usaldusväärsust, siis see pole parim valik. Üldiselt soovitame RabbitMQ DLX-i (Dead-Letter-Exchange) selle rakendamiseks, mis on viivitusega järjekorra funktsioon. Lihtsalt Redis'i lahendus on lihtsam rakendada ja odavam kasutada. See on siiski väga mugav ettevõtetele, kes ei nõua kõrget töökindlust. |