수색…


소개

Redis는 데이터베이스의 기능을 확장하기위한 몇 가지 메커니즘을 제공합니다. 하나의 메커니즘은 데이터를 조작하기 위해 실행될 수있는 서버 측 LUA 스크립트를 사용하는 것입니다. 루아 스크립트는 값 비싼 연산을 수행하거나 논리가 필요한 원자 적 연산을 구현하는 데 유용 할 수 있습니다.

스크립팅을위한 명령

Redis는 스크립트 작업을위한 7 가지 작업을 제공합니다.

  • 평가 작업 (EVAL, EVALSHA)
  • 스크립트 작업 (디버그, 존재, 플래쉬, 킬,로드)

EVAL 명령은 서버에 대한 문자열 인수로 제공된 스크립트를 평가합니다. 스크립트는 명령의 인수 및 사용자가 스크립트에 전달하려는 추가 문자열 매개 변수로 명명 된 지정된 Redis 키에 액세스 할 수 있습니다.

예를 들어, 다음 명령은 :

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

단순히 제공된 값을 반환하는 사용자 정의 루아 스크립트의 실행을 유발합니다. 이 호출에는 2 개의 Redis 키 (key1 및 key2)와 두 개의 매개 변수가 포함됩니다.

Lua 스크립트를 실행하는 또 다른 방법은 먼저 데이터베이스에로드 한 다음 스크립트의 SHA 해시를 사용하여 실행하는 것입니다.

> 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"

script load 명령은 스크립트를로드하고이를 데이터베이스에 저장합니다. 스크립트의 sha 시그니처가 리턴되어 이후 호출에서 참조 할 수 있습니다. EVALSHA 함수는 sha를 취하여 데이터베이스에서 해당 스크립트를 실행합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow