Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 29611|Odpoveď: 2

[Redis] Redis používa písmo Lua na podrobné vysvetlenia

[Kopírovať odkaz]
Zverejnené 30. 4. 2021 15:42:57 | | | |
Čo sa týka redis, často ho používa každý, a najpoužívanejším scenárom je dátové cacheovanie.

revízia

Rozdiel v perzistencii Redis medzi RDB a AOF
https://www.itsvse.com/thread-9555-1-1.html

Inštalácia Dockeru beží na cache Redis
https://www.itsvse.com/thread-8995-1-1.html

Príklady vysvetľujú, čo sú penetrácia keše v Redise, lavína cache a rozpad cache
https://www.itsvse.com/thread-8968-1-1.html

Redis žolíky na hromadné mazanie kľúčov
https://www.itsvse.com/thread-7957-1-1.html

Návod na inštaláciu Redis 5.0.3 na CentOS 7
https://www.itsvse.com/thread-7201-1-1.html

Nainštalujte rozšírenie redis pod php 5.5.7 pod CentOS
https://www.itsvse.com/thread-7200-1-1.html

Koľko kľúčov môže byť uložených v inštancii Redis a aké sú maximálne kľúče a hodnoty?
https://www.itsvse.com/thread-6848-1-1.html

Otázka redis čínštiny sa nedá správne zobraziť
https://www.itsvse.com/thread-5032-1-1.html

Redis umožňuje vzdialený prístup
https://www.itsvse.com/thread-5011-1-1.html

Windows neúspešne spustí službu Redis, chyba 1067: Proces sa neočakávane ukončí.
https://www.itsvse.com/thread-5010-1-1.html

CentOS nainštaloval Redis 4.0.8
https://www.itsvse.com/thread-4614-1-1.html

Redis nastavuje heslá na vzdialené pripojenie a prístup
https://www.itsvse.com/thread-4101-1-1.html

Redis vyprázdni dátovú cache
https://www.itsvse.com/thread-4027-1-1.html

Konfigurácia perzistencie v Redis a vypnutie perzistencie
https://www.itsvse.com/thread-4012-1-1.html

Rozdiel medzi save a bgsave v redis
https://www.itsvse.com/thread-4010-1-1.html

Redis dve metódy a princípy perzistencie
https://www.itsvse.com/thread-4009-1-1.html

Redis má tri spôsoby, ako začať
https://www.itsvse.com/thread-4008-1-1.html

Redis metóda skrývania príkazových okien
https://www.itsvse.com/thread-2988-1-1.html

Redisov hash hash problém
https://www.itsvse.com/thread-2587-1-1.html

5 vecí, ktoré musíte vedieť pred použitím Redis
https://www.itsvse.com/thread-2580-1-1.html

Redis upravuje predvolené číslo portu a nastavuje prístupové heslo
https://www.itsvse.com/thread-2577-1-1.html

Redis Windows 64-bit na stiahnutie, oficiálna adresa stiahnutia
https://www.itsvse.com/thread-2576-1-1.html
Od redis 2.6.0 má redis zabudovaný interpret Lua a poskytuje príkaz eval na analýzu hodnotenia Lua skriptov.

Syntax: eval script numkeys keys args

Parametre:

eval — Redis poskytuje príkazy na spracovanie lua skriptu

Skript — Lua Script

numkeys — Špecifikuje počet kľúčov v množine parametrov názvov kľúčov

keys — Množina parametrov názvov kľúčov, reprezentovaná globálnym poľom KEYS začínajúcim dolným indexom 1

args — Množina kľúčovo-hodnotových parametrov, reprezentovaných poľom globálnych premenných ARGV, začínajúc indexom 1


Výhody použitia Lua v Redis

Znížte režijné zaťaženie siete. Viacero požiadaviek je možné posielať naraz vo forme skriptov na zníženie latencie siete
Atómová manipulácia. Redis vykoná celý skript ako celok, bez ďalších príkazov medzi nimi. Preto nie je potrebné sa obávať podmienok pretekov a transakcií počas procesu skriptovania.
Znovu prijatý. Kroky, ktoré klient posiela, sú trvalo ukladané v redise, aby ostatní klienti mohli skript znovu použiť bez nutnosti používať kód na dokončenie rovnakej logiky.

Atómovosť skriptu

Lua skripty nemôžu mať časovo náročné operácie alebo mŕtve cykly, inak redis neprijme iné príkazy a nevykoná ho na zastavenie spustenia skriptu

Redis používa jeden Lua interpreter na spustenie všetkých skriptov a zabezpečuje, že skripty sa vykonávajú atómicky.To znamená, že keď je skript bežaný, žiadne iné skripty ani príkazy redis sa nespúšťajú! Preto, ak aktuálny skript beží pomaly, server nemusí byť schopný príkaz vykonať, pretože je zaneprázdnený, napríklad:

Každý skript má maximálny časový limit na vykonanie, predvolená hodnota je 5s. Maximálny čas vykonávania je riadený možnosťou časového limitu lua v konfiguračnom súbore redis.conf alebo priamo pomocou príkazov configget a config set. Keď vykonanie skriptu dosiahne maximálny čas vykonávania, Redis ho aktívne neukončí, ale vykoná nasledujúce kroky:

(1) Redis zaznamenáva, že skript sa kráti

(2) Redis začína opätovne prijímať požiadavky od iných klientov, ale akceptuje len vykonávanie príkazov na ukončenie skriptu a vypnutie nosave.

(3) Ak skript vykonáva iba čítacie operácie, použite príkaz script kill na okamžité zastavenie skriptu; Ak skript vykoná zápisovú operáciu, iba príkaz na vypnutie uloženia/nosave môže zastaviť server a zabrániť zápisu aktuálnych dát na disk. (V tomto bode je server mimo prevádzky a dáta sa neuložia)


príklad

Spustite skript, parametre sú 2 kľúč a hodnota a príkaz je nasledovný:


Deadloop skripty, spustenie nasledujúceho skriptu spôsobí, že redis nebude schopný spracovať iné príkazy a zasekne sa:

Skúste použiť skript na pridanie dát typu string pomocou nasledujúceho príkazu:

Vykonajte zložitejšie skripty, ak je hodnota kľúča rovná hodnote, ktorú sme zadali, potom vymažte cache, inak urobte čokoľvek, príkaz je nasledovný:

Výsledky implementácie sú nasledovné:



(Koniec)




Predchádzajúci:.NET/C# Lock Principle Monitor poskytuje podrobné vysvetlenie
Budúci:IIS DELETE PUT request 405 riešenie
 Prenajímateľ| Zverejnené 10. 5. 2021 9:18:34 |

Prihlásenie na hypertextový odkaz je viditeľné.
Príkaz Redis Script Load sa používa na pridanie script script do cache skriptu, ale nevykoná sa okamžite.

Príkaz EVAL tiež pridá skript do cache skriptu, ale výstupný skript vyhodnotí okamžite.

Ak je daný skript už v cache, nevykonáva sa žiadna akcia.

Po pridaní skriptu do cache je možné skript volať pomocou kontrolného súčtu SHA1 skriptu pomocou príkazu EVALSHA. (To tiež znamená.)Ten istý skript vykoná rovnakú hodnotu sha1 na akomkoľvek inom redis serveri

Skripty môžu zostať v cache neobmedzene dlho, kým sa SCRIPT FLUSH nevykoná.



 Prenajímateľ| Zverejnené 12. 5. 2021 11:38:55 |
Zistite, či je lua skript v cache


Po reštarte Redisu sa skript Lua automaticky vymaže, nebude trvalý

Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com