Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 29611|Vastaus: 2

[Redis] Redis käyttää Lua-skriptejä yksityiskohtaisiin selityksiin

[Kopioi linkki]
Julkaistu 30.4.2021 15.42.57 | | | |
Redisin osalta kaikki käyttävät sitä usein, ja yleisin käyttötapa on datan välimuisti.

arvostelu

Redis Persistenssin ero RDB:n ja AOF:n välillä
https://www.itsvse.com/thread-9555-1-1.html

Docker-asennus pyörittää Redis-välimuistia
https://www.itsvse.com/thread-8995-1-1.html

Esimerkit selittävät, mitä Redis cache penetration, cache avalanche ja cache breakdown ovat
https://www.itsvse.com/thread-8968-1-1.html

Redis Wildcardit avainten suuriin määriin poistamiseen
https://www.itsvse.com/thread-7957-1-1.html

CentOS 7 -asennus Redis 5.0.3 -opas
https://www.itsvse.com/thread-7201-1-1.html

Asenna Redis-laajennus PHP 5.5.7 -versiolle CentOS:lle
https://www.itsvse.com/thread-7200-1-1.html

Kuinka monta avainta redis-instanssiin voidaan tallentaa, ja mitkä ovat maksimiavaimet ja arvot?
https://www.itsvse.com/thread-6848-1-1.html

Redis Chinese -numeroa ei voida näyttää oikein
https://www.itsvse.com/thread-5032-1-1.html

Redis mahdollistaa etäyhteyden
https://www.itsvse.com/thread-5011-1-1.html

Windows ei käynnistä Redis-palvelua, virhe 1067: Prosessi päättyy yllättäen.
https://www.itsvse.com/thread-5010-1-1.html

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

Redis asettaa etäyhteyden ja pääsysalasanat
https://www.itsvse.com/thread-4101-1-1.html

Redis tyhjentää datavälimuistin
https://www.itsvse.com/thread-4027-1-1.html

Redis persistenssikonfiguraatio ja pois päältä persistenssi
https://www.itsvse.com/thread-4012-1-1.html

Ero tallennuksen ja bgsave:n välillä Redisissä
https://www.itsvse.com/thread-4010-1-1.html

Redisin kaksi pysyvyysmenetelmää ja periaatetta
https://www.itsvse.com/thread-4009-1-1.html

Redisilla on kolme tapaa aloittaa
https://www.itsvse.com/thread-4008-1-1.html

Redis-menetelmä komentoriviikkunoiden piilottamiseen
https://www.itsvse.com/thread-2988-1-1.html

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

5 asiaa, jotka sinun tulee tietää ennen Redisin käyttöä
https://www.itsvse.com/thread-2580-1-1.html

Redis muuttaa oletusporttinumeron ja asettaa pääsysalasanan
https://www.itsvse.com/thread-2577-1-1.html

Redis Windows 64-bittinen lataus, virallinen latausosoite
https://www.itsvse.com/thread-2576-1-1.html
Redis 2.6.0:sta alkaen Redis sisältää sisäänrakennetun Lua-tulkin ja tarjoaa arviointikomennon Lua-skriptin arvioinnin jäsentämiseen.

Syntaksi: eval script numkeys keys args

Parametrit:

arviointi — Redis antaa komentoja lua-skriptin jäsentämiseen

Käsikirjoitus — Lua Script

numkeys — Määrittää avainten määrän keyname-parametrijoukossa

keys — Avainnimiparametrijoukko, joka esitetään globaalina muuttujana KEYS-taulukkona, alkaen alaindeksillä 1

args — Avainarvoparametrien joukko, joka esitetään globaalien muuttujien ARGV-taulukolla, alkaen alaindeksillä 1


Luan käytön edut Redisissä

Vähennä verkon ylikuormitusta. Useita pyyntöjä voidaan lähettää samanaikaisesti skriptien muodossa verkon viiveen vähentämiseksi
Atomimanipulaatio. Redis suorittaa koko skriptin kokonaisuutena, eikä väliin lisätä muita komentoja. Siksi ei tarvitse huolehtia kilpailun olosuhteista ja tapahtumista skriptausprosessin aikana.
Palautettu. Asiakkaan lähettämät askeleet tallennetaan jatkuvasti redisiin, jotta muut asiakkaat voivat käyttää skriptiä uudelleen ilman, että heidän tarvitsee käyttää koodia saman logiikan suorittamiseen.

Kirjoitusatomisuus

Lua-skriptit eivät voi sisältää aikaa vieviä operaatioita tai kuolleita silmukoita, muuten Redis ei hyväksy muita komentoja ja suorita skriptin pysäyttämiseksi

Redis käyttää yhtä Lua-tulkkia kaikkien skriptien suorittamiseen ja varmistaa, että skriptit suoritetaan atomisesti.Tämä tarkoittaa, että skriptin ollessa käynnissä muita skriptejä tai redis-komentoja ei suoriteta! Siksi, jos nykyinen skripti toimii hitaasti, palvelin ei välttämättä pysty suorittamaan komentoa, koska se on kiireinen, kuten:

Jokaisella skriptillä on maksimisuoritusaikaraja, oletusarvo on 5s. Maksimisuoritusaikaa ohjaa konfiguraatiotiedoston redis.conf lua-aikaraja-vaihtoehto tai suoraan config get- ja config set -komennoilla. Kun skriptin suoritus saavuttaa maksimisuoritusajan, Redis ei aktiivisesti lopeta sitä, vaan suorittaa seuraavat vaiheet:

(1) Redis kirjaa, että käsikirjoitus alkaa käydä vähiin

(2) Redis alkaa hyväksyä pyyntöjä uudelleen muilta asiakkailta, mutta hyväksyy vain skriptin tappokäskyjen suorittamisen ja nosaven sammuttamisen.

(3) Jos skripti suorittaa vain lukutoimintoja, käytä skriptin tappokäskyä pysäyttääksesi skriptin välittömästi; Jos skripti suorittaa kirjoitusoperaation, vain shutdown save/nosave -komento saa pysäyttää palvelimen estääkseen nykyisen datan kirjoittamisen levylle. (Tässä vaiheessa palvelin on poissa käytöstä eikä dataa tallenneta)


esimerkki

Suorita skripti, parametrit ovat 2 avainta ja arvoa, ja komento on seuraava:


Deadloop-skripteissä seuraavan skriptin suorittaminen aiheuttaa sen, ettei Redis pysty käsittelemään muita komentoja ja jää jumiin:

Kokeile käyttää skriptiä lisätäksesi tyyppimerkkijonon dataa seuraavalla komennolla:

Suorita monimutkaisempia skriptejä, jos avaimen arvo vastaa syötettyä arvoa, poista välimuisti, muuten tee mitä tahansa, komento on seuraava:

Toteutuksen tulokset ovat seuraavat:



(Loppu)




Edellinen:.NET/C# Lock Principle Monitor tarjoaa perusteellisen selityksen
Seuraava:IIS DELETE PUT -pyyntö 405 -ratkaisu
 Vuokraisäntä| Julkaistu 10.5.2021 9.18.34 |

Hyperlinkin kirjautuminen on näkyvissä.
Redis Script Load -komentoa käytetään lisäämään skriptiskripti välimuistiin, mutta sitä ei suoriteta välittömästi.

EVAL-komento lisää myös skriptin välimuistiin, mutta se arvioi syöteskriptin välittömästi.

Jos annettu skripti on jo välimuistissa, toimenpiteitä ei tehdä.

Kun skripti lisätään välimuistiin, skripti voidaan kutsua käyttämällä skriptin SHA1-tarkistussummaa EVALSHA-komennolla. (Tämä tarkoittaa myös.)Sama skripti suorittaa saman sha1-arvon millä tahansa eri Redis-palvelimella

Skriptit voivat pysyä välimuistissa äärettömän ajan, kunnes SCRIPT FLUSH suoritetaan.



 Vuokraisäntä| Julkaistu 12.5.2021 11.38.55 |
Selvitä, onko lua-skripti välimuistissa


Kun Redis käynnistyy uudelleen, Lua-skripti tyhjennetty automaattisesti, ei ole pysyvä

Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com