See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 29611|Vastuse: 2

[Redis] Redis kasutab üksikasjalike selgituste jaoks Lua skripte

[Kopeeri link]
Postitatud 30.04.2021 15:42:57 | | | |
Mis puudutab redis'i, siis kõik kasutavad seda tihti ja kõige sagedamini kasutatakse andmete vahemällu salvestamist.

Läbivaatamine

Redis püsivuse erinevus RDB ja AOF vahel
https://www.itsvse.com/thread-9555-1-1.html

Dockeri paigaldus käivitab Redis vahemälu
https://www.itsvse.com/thread-8995-1-1.html

Näited selgitavad, mida on Redis vahemälu läbimurdmine, vahemälu laviinid ja vahemälu jaotus
https://www.itsvse.com/thread-8968-1-1.html

Redis Wildcard'id võtmete hulgiseks kustutamiseks
https://www.itsvse.com/thread-7957-1-1.html

CentOS 7 paigaldus Redis 5.0.3 õpetus
https://www.itsvse.com/thread-7201-1-1.html

Paigalda Redis laiendus php 5.5.7 alla CentOS-i all
https://www.itsvse.com/thread-7200-1-1.html

Kui palju võtmeid saab redis-instantsi salvestada ning millised on maksimaalsed võtmed ja väärtused?
https://www.itsvse.com/thread-6848-1-1.html

Redis hiina keele küsimust ei saa korrektselt kuvada
https://www.itsvse.com/thread-5032-1-1.html

Redis võimaldab kaugjuurdepääsu
https://www.itsvse.com/thread-5011-1-1.html

Windows ei käivita Redis teenust, viga 1067: Protsess lõpeb ootamatult.
https://www.itsvse.com/thread-5010-1-1.html

CentOS paigaldas Redis 4.0.8
https://www.itsvse.com/thread-4614-1-1.html

Redis seadistab kaugühenduse ja ligipääsu paroolid
https://www.itsvse.com/thread-4101-1-1.html

Redis tühjendab andmevahemälu
https://www.itsvse.com/thread-4027-1-1.html

Redis püsivuse konfiguratsioon ja väljalülitatud püsivus
https://www.itsvse.com/thread-4012-1-1.html

Erinevus salvestuse ja bgsave'i vahel redises
https://www.itsvse.com/thread-4010-1-1.html

Redis kaks püsivusmeetodit ja põhimõtet
https://www.itsvse.com/thread-4009-1-1.html

Redisil on kolm võimalust alustada
https://www.itsvse.com/thread-4008-1-1.html

Redis meetod käsurea akende peitmiseks
https://www.itsvse.com/thread-2988-1-1.html

Redis Hash Hash Hash Hash Value Probleem
https://www.itsvse.com/thread-2587-1-1.html

5 asja, mida peaksid teadma enne Redise kasutamist
https://www.itsvse.com/thread-2580-1-1.html

Redis muudab vaikimisi pordinumbrit ja määrab ligipääsuparooli
https://www.itsvse.com/thread-2577-1-1.html

Redis Windowsi 64-bitine allalaadimine, ametlik allalaadimisaadress
https://www.itsvse.com/thread-2576-1-1.html
Alates redis 2.6.0-st on redisel sisseehitatud Lua tõlgendaja ja see annab eval-käsku Lua skripti hindamise parsimiseks.

Süntaks: eval script numkeys keys args

Parameetrid:

Hindamine — Redis annab käske lua skripti parsimiseks

Stsenaarium — Lua Script

numkeys — Määrab võtmete parameetrite hulga võtmete arvu

keys — Võtmenime parameetrite komplekt, mida esindab globaalne muutuja KEYS massiivi, mis algab indeksiga 1

args — võtme-väärtuse parameetrite kogum, mida esindab globaalsete muutujate ARGV massiivi, mis algab indeksiga 1


Lua kasutamise eelised Redis

Vähenda võrgu koormust. Mitut päringut saab korraga saata skriptide kujul, et vähendada võrgu latentsust
Aatomimanipulatsioon. Redis käivitab kogu skripti tervikuna, vahepeal ei lisata muid käske. Seetõttu ei ole skriptimise käigus vaja muretseda võistlustingimuste ja tehingute pärast.
Taastatud. Kliendi poolt saadetud sammud salvestatakse järjepidevalt Redis'isse, et teised kliendid saaksid skripti uuesti kasutada ilma, et peaksid sama loogika täitmiseks koodi kasutama.

Kirja aatomilisus

Lua skriptidel ei tohi olla ajamahukaid operatsioone ega surnud tsükliid, vastasel juhul Redis ei võta vastu teisi käske ja käivitab, et skripti peatada

Redis kasutab kõigi skriptide käivitamiseks ühte Lua interpretaatorit ja tagab, et skriptid täidetakse aatomipõhiselt.See tähendab, et kui skript töötab, ei käivitata teisi skripte ega redis-käske! Seega, kui praegune skript töötab aeglaselt, ei pruugi server käsku täita, kuna see on hõivatud, näiteks:

Igal skriptil on maksimaalne täitmise ajapiirang, vaikimisi väärtus on 5s. Maksimaalset täitmisaega kontrollib konfiguratsioonifaili redis.conf lua-time-limit valik või otse config get ja config set käskude abil. Kui skripti täitmine jõuab maksimaalse täitmisajani, ei lõpeta Redis seda aktiivselt, vaid täidab järgmised sammud:

(1) Redis registreerib, et stsenaariumi aeg hakkab otsa saama

(2) Redis hakkab uuesti vastu võtma päringuid teistelt klientidelt, kuid aktsepteerib ainult skripti tapmiskäskude täitmist ja nosave'i sulgemist.

(3) Kui skript teeb ainult lugemistoiminguid, kasuta skripti tapmiskäsku skripti koheseks peatamiseks; Kui skript teostab kirjutamistoimingu, siis ainult shutdown save/nosave käsk saab serverit peatada, et takistada praeguste andmete kirjutamist kettale. (Sel hetkel on server maas ja andmeid ei salvestata)


näide

Käivita skript, parameetrid on 2 võtit ja väärtust ning käsk on järgmine:


Deadloop skriptide puhul põhjustab järgmise skripti käivitamine seda, et redis ei suuda teisi käske töödelda ja jääb kinni:

Proovi kasutada skripti, et lisada tüübi stringi andmeid järgmise käsuga:

Käivita keerukamaid skripte, kui võtme väärtus on võrdne sisestatud väärtusega, siis kustuta vahemälu, muidu tee midagi, käsk on järgmine:

Rakendamise tulemused on järgmised:



(Lõpp)




Eelmine:.NET/C# luku põhimõtte monitor annab põhjaliku selgituse
Järgmine:IIS DELETE PUT taotlus 405 lahendus
 Üürileandja| Postitatud 10.05.2021 09:18:34 |

Hüperlingi sisselogimine on nähtav.
Redis Script Load käsku kasutatakse skriptiskripti lisamiseks skriptivahemälu, kuid seda ei käivitata kohe.

EVAL käsk lisab skripti ka skriptivahemälu, kuid hindab sisendskripti kohe.

Kui antud skript on juba vahemälus, siis mingeid toiminguid ei tehta.

Pärast skripti lisamist vahemälule saab skripti kutsuda skripti SHA1 kontrollsumma abil EVALSHA käsu kaudu. (See tähendab ka.)Sama skript täidab sama sha1 väärtust igal erineval Redis serveril

Skriptid võivad vahemälus püsida lõpmatuks ajaks, kuni SCRIPT FLUSH on käivitatud.



 Üürileandja| Postitatud 12.05.2021 11:38:55 |
Määra, kas lua skript on vahemälus


Pärast Redise taaskäivitust kustutatakse Lua skript automaatselt, ei ole püsiv

Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com