Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 29611|Odpověď: 2

[Redis] Redis používá písma Lua pro podrobná vysvětlení

[Kopírovat odkaz]
Zveřejněno 30.04.2021 15:42:57 | | | |
Co se týče redis, často ho používá každý, a nejpoužívanějším scénářem je data cache.

přezkoumání

Rozdíl v perzistenci mezi RDB a AOF v Redisu
https://www.itsvse.com/thread-9555-1-1.html

Instalace Dockeru spouští cache Redis
https://www.itsvse.com/thread-8995-1-1.html

Příklady vysvětlují, co jsou pronikání do keše Redis, lavina cache a rozpad cache
https://www.itsvse.com/thread-8968-1-1.html

Redis žolíky pro hromadné mazání klíčů
https://www.itsvse.com/thread-7957-1-1.html

Instalace CentOS 7 Redis 5.0.3 tutoriál
https://www.itsvse.com/thread-7201-1-1.html

Nainstalujte rozšíření redis pod php 5.5.7 pod CentOS
https://www.itsvse.com/thread-7200-1-1.html

Kolik klíčů lze uložit v instanci Redis a jaké jsou maximální klíče a hodnoty?
https://www.itsvse.com/thread-6848-1-1.html

Problém s čínštinou redis nelze správně zobrazit
https://www.itsvse.com/thread-5032-1-1.html

Redis umožňuje vzdálený přístup
https://www.itsvse.com/thread-5011-1-1.html

Windows nedokáže spustit službu Redis, chyba 1067: Proces se neočekávaně ukončí.
https://www.itsvse.com/thread-5010-1-1.html

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

Redis nastavuje vzdálená připojení a přístupová hesla
https://www.itsvse.com/thread-4101-1-1.html

Redis vyprázdní datovou cache
https://www.itsvse.com/thread-4027-1-1.html

Konfigurace perzistence v Redis a vypnutí perzistence
https://www.itsvse.com/thread-4012-1-1.html

Rozdíl mezi uloženou hrou a bgsave v redis
https://www.itsvse.com/thread-4010-1-1.html

Redis dvě metody a principy setrvání
https://www.itsvse.com/thread-4009-1-1.html

Redis má tři způsoby, jak začít
https://www.itsvse.com/thread-4008-1-1.html

Metoda Redisu pro skrývání příkazových oken
https://www.itsvse.com/thread-2988-1-1.html

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

5 věcí, které musíte vědět před použitím Redis
https://www.itsvse.com/thread-2580-1-1.html

Redis upravuje výchozí číslo portu a nastavuje přístupové heslo
https://www.itsvse.com/thread-2577-1-1.html

Redis Windows 64-bit download, oficiální adresa ke stažení
https://www.itsvse.com/thread-2576-1-1.html
Od redis 2.6.0 má redis vestavěný interpret Lua a poskytuje příkaz eval pro analýzu hodnocení Lua skriptu.

Syntaxe: eval script numkeys keys args

Parametry:

eval — Redis poskytuje příkazy pro zpracování lua skriptu

Skript — Lua Script

numkeys — Specifikuje počet klíčů v sadě parametrů názvů klíčů

keys — Sada parametrů názvů klíče, reprezentovaná polem globální proměnné KEYS, začínající indexem 1

args — Sada klíčových parametrů, reprezentovaných polem globálních proměnných ARGV, začínajících indexem 1


Výhody použití Lua v Redis

Snižte zátěž sítě. Více požadavků lze posílat současně ve formě skriptů ke snížení latence sítě
Atomová manipulace. Redis spustí celý skript jako celek, bez dalších příkazů vložených mezi ně. Proto není třeba se během skriptování obávat podmínek závodu a transakcí.
Znovu přijat. Kroky odeslané klientem jsou trvale ukládány v redisu, aby ostatní klienti mohli skript znovu použít, aniž by museli používat kód k dokončení stejné logiky.

Atomicita skriptu

Lua skripty nemohou mít časově náročné operace ani mrtvé smyčky, jinak redis nepřijme jiné příkazy a nespustí se tak, aby skript zastavil

Redis používá jediný interpret Lua pro spuštění všech skriptů a zajišťuje, že skripty jsou vykonávány atomicky.To znamená, že když skript běží, žádné další skripty ani příkazy redis se nespouštějí! Pokud tedy aktuální skript běží pomalu, server nemusí být schopen příkaz spustit, protože je zaneprázdněný, například:

Každý skript má maximální časový limit, výchozí hodnota je 5s. Maximální doba provedení je řízena volbou lua-time-limit v konfiguračním souboru redis.conf, nebo přímo pomocí příkazů config get a config set. Když skript dosáhne svého maximálního času vykonání, Redis jej aktivně neukončí, ale provádí následující kroky:

(1) Redis zaznamenává, že skript dochází

(2) Redis začne znovu přijímat požadavky od ostatních klientů, ale přijímá pouze provádění příkazů ke zabití skriptu a vypnutí nosave.

(3) Pokud skript provádí pouze čtení operací, použijte příkaz ke zabití skriptu k okamžitému zastavení skriptu; Pokud skript provede zápisovou operaci, je povolen pouze příkaz pro vypnutí uložení/nosave, který může server zastavit a zabránit zápisu aktuálních dat na disk. (V tuto chvíli je server mimo provoz a data se neukládají)


příklad

Spusť skript, parametry jsou 2 klíč a hodnota a příkaz je následující:


Deadloop skripty, při spuštění následujícího skriptu Redis nebude schopen zpracovávat jiné příkazy a zasekne se:

Zkuste použít skript k přidání dat typu string pomocí následujícího příkazu:

Spuskutěte složitější skripty, pokud je hodnota klíče rovna hodnotě, kterou jsme předali, pak cache smažte, jinak udělejte cokoliv, příkaz je následující:

Výsledky implementace jsou následující:



(Konec)




Předchozí:.NET/C# Monitor principů zámků poskytuje podrobné vysvětlení
Další:IIS DELETE PUT request 405 řešení
 Pronajímatel| Zveřejněno 10.05.2021 9:18:34 |

Přihlášení k hypertextovému odkazu je viditelné.
Příkaz Redis Script Load se používá k přidání skriptového skriptu do cache skriptu, ale není vykonán okamžitě.

Příkaz EVAL také přidá skript do cache skriptu, ale vstupní skript vyhodnotí okamžitě.

Pokud je daný skript již v cache, žádná akce se neprovede.

Po přidání skriptu do cache lze skript vyvolat pomocí kontrolního součtu SHA1 skriptu pomocí příkazu EVALSHA. (To také znamená.)Stejný skript vykoná stejnou hodnotu sha1 na jakémkoli jiném redis serveru

Skripty mohou zůstat v cache neomezeně dlouho, dokud není vykonán SCRIPT FLUSH.



 Pronajímatel| Zveřejněno 12.05.2021 11:38:55 |
Zjistěte, zda je lua skript v cache


Po restartu Redisu je skript Lua automaticky vymazán, nebude trvalý

Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com