Veicot noteiktas operācijas ar laiku, mums ir nepieciešama atgriezeniskā saite par rezultātiem. Piemēram, pasūtījumi tiek automātiski izdzēsti, pasūtījumi tiek automātiski slavēti pēc dažām dienām, neapmaksāti pasūtījumi tiek slēgti pēc 15 minūtēm utt., Ko var pabeigt, izmantojot dažus laika uzdevumus vai aptaujas metodes. Šajā rakstā tiek izmantots Redis uzlaboto līdzekļu kešatmiņas derīguma termiņa paziņošanas mehānisms apvienojumā ar .NET/C# kodu, lai izpildītu biznesa prasības.
Ievads
Lietošanas scenāriji: 1. Maksājumu biznesā neapmaksātie pasūtījumi tiek automātiski slēgti 2. Kešatmiņas atgādinājumi par derīguma termiņu
Kopumā mēs varam izmantot laika pakalpojumu, lai apstrādātu neapmaksātu pasūtījumu automātisku slēgšanu, piemēram, katru minūti zvanot uz saskarni, lai apstrādātu neapmaksātus un beidzies pasūtījumu derīguma termiņš, bet šajā gadījumā tas patērēs datora veiktspēju, pat ja nav pasūtījuma, tas tiks apstrādāts katru minūti, un maksimālā pasūtījuma apstrādes laika kavēšanās būs 59s, un laika pakalpojumam vienmēr jābūt pieejamam
Tātad, ko mēs vēlamies darīt tikai tad, ja ir neapmaksāti un beidzies pasūtījumi ar zemu latentuma apstrādi, mēs varam izmantot Redis kešatmiņas derīguma termiņa mehānismu, lai virzītu abonementu.
Redis abonements
Modificējiet notify-keyspace-events Ex konfigurācijas failā redis.conf
Lai ietaupītu kausa resursus, notikumu paziņojumi pēc noklusējuma nav ieslēgti, un noklusējums ir notify-keyspace-events
# K paziņojums par taustiņu <db>atstarpi, prefikss ar __keyspace@__ # E atslēgas notikuma paziņojums, <db>prefikss __keysevent@__ # g del, expipre, pārdēvēt un cita veida vispārējas komandas, ... # $string komanda # l Komanda Saraksts Komanda #s Set # h Hash komanda # z pasūtīta komanda set # x Derīguma termiņš (ģenerēts katru reizi, kad beidzas atslēgas derīguma termiņš) # e izlikšanas notikums (ģenerēts, kad atslēga tiek notīrīta, kad atmiņa ir pilna) # g$lshzxe aizstājvārds, tātad "AKE" nozīmē visus notikumus
notify-keyspace-events "kx" norāda, ka vēlaties pārraudzīt atslēgas anulēšanas notikumus. Parametra iestatīšana uz virkni AKE nozīmē visu veidu paziņojumu nosūtīšanu.
Es instalēju redis kā pakalpojumu savā datorā, modificēju redis.windows.conf konfigurācijas failu un vajadzēja restartēt redis pakalpojuma konfigurāciju, lai tā stātos spēkā.
.NET/C# koda piemērs
Pakete ir šāda:
Izmantot
Mēģināsim uzrakstīt kešatmiņu ar redis-cli.
Faktiski varat arī abonēt kešatmiņas derīguma termiņa paziņojumus, izpildot šādu komandu, izmantojot redis-cli:
Kad N klienti abonē kešatmiņas derīguma termiņa notikumu paziņojumus, redis paziņos N lietotājiem par to pašu derīguma termiņa ziņojumu, nevis tikai vienu no klientiem, kā parādīts zemāk redzamajā attēlā:
C# avota koda lejupielāde:
https://down.itsvse.com/item/17856.html
Kopsavilkuma
Redis pub / sub ir neuzticams ziņojumu mehānisms, tas nesaglabās informāciju, tas tiks pārsūtīts tikai tiešsaistē, un noteikti nav ack apstiprinājuma mehānisma, un tiks pārsūtīts tikai abonēšanas segments, tāpēc Keyspace paziņojumi ir arī neuzticama paziņojumu sistēma, ja mūsu biznesam ir nepieciešama laba uzticamība, tad šī nav labākā izvēle. Parasti mēs iesakām to ieviest RabbitMQ DLX (Dead-Letter-Exchange), kas ir aizkavētās rindas funkcija. Tas ir tikai tas, ka Redis risinājums ir vieglāk īstenojams un lētāk ekspluatējams. Tas joprojām ir ļoti ērti uzņēmumiem, kuriem nav nepieciešama augsta uzticamība. |