Szukaj…


Wprowadzenie

Redis zapewnia kilka mechanizmów rozszerzających funkcjonalność bazy danych. Jednym z mechanizmów jest użycie skryptów LUA po stronie serwera, które można wykonywać w celu manipulowania danymi. Skrypty Lua mogą być przydatne do wykonywania kosztownych operacji lub implementacji operacji atomowych wymagających logiki.

Polecenia do tworzenia skryptów

Redis zapewnia siedem różnych operacji do pracy ze skryptami:

  • Operacje ewaluacyjne (EVAL, EVALSHA)
  • PRZESUNIĘCIE (DEBUGOWANIE, ISTNIENIE, PŁUKANIE, ZABÓJ, OBCIĄŻENIE)

Komenda EVAL ocenia skrypt podany jako argument ciągu na serwerze. Skrypty mogą uzyskiwać dostęp do określonych kluczy Redis nazwanych jako argumenty polecenia i dodatkowych parametrów ciągu, które użytkownik chce przekazać do skryptu.

Na przykład polecenie:

EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1 key2 first second

powoduje wykonanie skryptu Lua zdefiniowanego przez użytkownika, który po prostu zwraca podane wartości. Połączenie dotyczy 2 kluczy Redis (key1 i key2) oraz dwóch parametrów.

Innym sposobem wykonania skryptu Lua jest najpierw załadowanie go do bazy danych, a następnie wykonanie go za pomocą skrótu SHA skryptu .:

> script load "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}"
"a42059b356c875f0717db19a51f6aaca9ae659ea"
> evalsha "a42059b356c875f0717db19a51f6aaca9ae659ea" 2 key1 key2 foo bar
1) "key1"
2) "key2"
3) "foo"
4) "bar"

Polecenie load script ładuje skrypt i zapisuje go w bazie danych. Sygnatura sha skryptu jest zwracana, aby można było do niej odwoływać się w przyszłych wywołaniach. Funkcja EVALSHA pobiera sha i wykonuje odpowiedni skrypt z bazy danych.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow