Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 29611|Atbildi: 2

[Redis] Redis detalizētiem skaidrojumiem izmanto Lua skriptus

[Kopēt saiti]
Publicēts 30.04.2021 15:42:57 | | | |
Attiecībā uz redis visi to bieži izmanto, un visbiežāk izmantotais scenārijs ir datu kešatmiņa.

Pārskats

Redis noturības atšķirība starp RDB un AOF
https://www.itsvse.com/thread-9555-1-1.html

Docker instalācija palaiž Redis kešatmiņu
https://www.itsvse.com/thread-8995-1-1.html

Piemēri paskaidro, kas ir Redis kešatmiņas iekļūšana, kešatmiņas lavīna un kešatmiņas sadalījums
https://www.itsvse.com/thread-8968-1-1.html

Redis aizstājējzīmes, lai izdzēstu atslēgas lielapjomā
https://www.itsvse.com/thread-7957-1-1.html

CentOS 7 instalēšana Redis 5.0.3 apmācība
https://www.itsvse.com/thread-7201-1-1.html

Instalējiet redis paplašinājumu zem php 5.5.7 zem CentOS
https://www.itsvse.com/thread-7200-1-1.html

Cik atslēgu var saglabāt redis instancē un kādas ir maksimālās atslēgas un vērtības?
https://www.itsvse.com/thread-6848-1-1.html

Redis ķīniešu problēmu nevar pareizi parādīt
https://www.itsvse.com/thread-5032-1-1.html

Redis iespējo attālinātu piekļuvi
https://www.itsvse.com/thread-5011-1-1.html

Windows neizdodas startēt Redis pakalpojumu, kļūda 1067: process negaidīti tiek pārtraukts.
https://www.itsvse.com/thread-5010-1-1.html

CentOS instalēts Redis 4.0.8
https://www.itsvse.com/thread-4614-1-1.html

Redis izveido attālo savienojumu un piekļuves paroles
https://www.itsvse.com/thread-4101-1-1.html

Redis iztukšo datu kešatmiņu
https://www.itsvse.com/thread-4027-1-1.html

Redis noturības konfigurācija un izslēgšanas noturība
https://www.itsvse.com/thread-4012-1-1.html

Atšķirība starp saglabāšanu un bgsave redis
https://www.itsvse.com/thread-4010-1-1.html

Redis divas noturības metodes un principi
https://www.itsvse.com/thread-4009-1-1.html

Redis ir trīs veidi, kā sākt
https://www.itsvse.com/thread-4008-1-1.html

Redis komandrindas logu slēpšanas metode
https://www.itsvse.com/thread-2988-1-1.html

Redis Hash Hash Hash vērtības problēma
https://www.itsvse.com/thread-2587-1-1.html

5 lietas, kas jums jāzina pirms Redis lietošanas
https://www.itsvse.com/thread-2580-1-1.html

Redis modificē noklusējuma porta numuru un iestata piekļuves paroli
https://www.itsvse.com/thread-2577-1-1.html

Redis Windows 64 bitu lejupielāde, oficiālā lejupielādes adrese
https://www.itsvse.com/thread-2576-1-1.html
Sākot ar redis 2.6.0, redis ir iebūvēts Lua tulks un nodrošina eval komandu, lai parsētu Lua skripta novērtējumu.

Sintakse: eval script numkeys keys args

Parametri:

eval — Redis nodrošina komandas, lai parsētu lua skriptu

Skripts - Lua skripts

numkeys — norāda atslēgu skaitu keyname parametru kopā

keys — keyname parametru kopa, ko attēlo globālais mainīgais KEYS masīvs, sākot ar apakšrakstu 1

args — atslēgas-vērtības parametru kopa, ko attēlo globālo mainīgo masīvs ARGV, sākot ar apakšrakstu 1


Lua lietošanas priekšrocības Redis

Samaziniet tīkla pieskaitāmās izmaksas. Vairākus pieprasījumus var nosūtīt uzreiz skriptu veidā, lai samazinātu tīkla latentumu
Atomu manipulācijas. Redis izpildīs visu skriptu kopumā, starp tām neievietojot citas komandas. Tāpēc skriptēšanas procesa laikā nav jāuztraucas par sacensību apstākļiem un darījumiem.
Atjaunots. Klienta nosūtītie soļi tiek pastāvīgi glabāti redis, lai citi klienti varētu atkārtoti izmantot skriptu, neizmantojot kodu, lai pabeigtu to pašu loģiku.

Skripta atomiskums

Lua skriptiem nevar būt laikietilpīgas darbības vai mirušās cilpas, pretējā gadījumā redis nepieņems citas komandas un izpildīs, lai apturētu skripta darbību

Redis izmanto vienu Lua tulku, lai palaistu visus skriptus, un nodrošina, ka skripti tiek izpildīti atomiski.Tas nozīmē, ka, darbojoties skriptam, netiks izpildīti citi skripti vai redis komandas! Tāpēc, ja pašreizējais skripts darbojas lēni, serveris, iespējams, nevarēs izpildīt komandu, jo tas ir aizņemts, piemēram:

Katram skriptam ir maksimālais izpildes laika ierobežojums, noklusējuma vērtība ir 5s. Maksimālo izpildes laiku kontrolē konfigurācijas faila redis.conf lua-time-limit opcija vai tieši, izmantojot komandas config get un config set. Kad skripta izpilde sasniedz maksimālo izpildes laiku, Redis to aktīvi nepārtrauc, tas veic šādas darbības:

(1) Redis ieraksta, ka skriptam beidzas laiks

(2) Redis sāk atkārtoti pieņemt pieprasījumus no citiem klientiem, bet pieņem tikai skriptu nogalināšanas komandu izpildi un izslēgšanu nosave.

(3) Ja skripts veic tikai lasīšanas operācijas, izmantojiet skripta nogalināšanas komandu, lai nekavējoties apturētu skriptu; Ja skripts veic rakstīšanas operāciju, servera apturēšanai ir atļauts apturēt tikai izslēgšanas saglabāšanas / nesaglabāšanas komandu, lai novērstu pašreizējo datu ierakstīšanu diskā. (Šajā brīdī serveris nedarbojas un dati netiks saglabāti)


piemērs

Izpildiet skriptu, parametri ir 2 atslēga un vērtība, un komanda ir šāda:


Deadloop skripti, izpildot šādu skriptu, radīs redis nespēju apstrādāt citas komandas un iestrēgt:

Mēģiniet izmantot skriptu, lai pievienotu virknes tipa datus ar šādu komandu:

Izpildiet dažus sarežģītākus skriptus, ja atslēgas vērtība ir vienāda ar vērtību, kuru mēs nododam, pēc tam izdzēsiet kešatmiņu, pretējā gadījumā dariet kaut ko, komanda ir šāda:

Īstenošanas rezultāti ir šādi:



(Beigas)




Iepriekšējo:.NET/C# bloķēšanas principa pārraugs sniedz padziļinātu skaidrojumu
Nākamo:IIS DELETE PUT pieprasījums 405 risinājums
 Saimnieks| Publicēts 10.05.2021 09:18:34 |

Hipersaites pieteikšanās ir redzama.
Komanda Redis Script Load tiek izmantota, lai skripta skriptu pievienotu skripta kešatmiņai, taču tā netiek izpildīta nekavējoties.

Komanda EVAL arī pievieno skriptu skripta kešatmiņai, bet tā nekavējoties novērtē ievades skriptu.

Ja dotais skripts jau ir kešatmiņā, tad netiek veiktas nekādas darbības.

Pēc skripta pievienošanas kešatmiņai skriptu var izsaukt, izmantojot skripta SHA1 kontrolsummu, izmantojot komandu EVALSHA. (Tas nozīmē arī.)Tas pats skripts izpilda to pašu sha1 vērtību jebkurā citā redis serverī

Skripti var palikt kešatmiņā bezgalīgu laiku, līdz tiek izpildīts SCRIPT FLUSH.



 Saimnieks| Publicēts 12.05.2021 11:38:55 |
Noteikt, vai lua skripts ir kešatmiņā


Pēc Redis restartēšanas Lua skripts tiek automātiski notīrīts, nebūs pastāvīgs

Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com