サーチ…


前書き

Redisは、データベースの機能を拡張するための2つのメカニズムを提供します。 1つのメカニズムは、データを操作するために実行できるサーバー側のLUAスクリプトの使用によるものです。 Luaスクリプトは、高価な操作を実行したり、ロジックを必要とするアトミック操作を実装したりするのに便利です。

スクリプト用のコマンド

Redisは、スクリプトを操作するための7つの異なる操作を提供します。

  • 評価作業(EVAL、EVALSHA)
  • SCRIPT操作(デバッグ、EXISTS、FLUSH、KILL、LOAD)

EVALコマンドは、サーバーへの文字列引数として提供されるスクリプトを評価します。スクリプトは、コマンドの引数として指定された指定されたRedisキー、およびユーザーがスクリプトに渡す追加の文字列パラメータにアクセスできます。

たとえば、次のコマンドを実行します。

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

与えられた値を単に返すユーザ定義のLuaスクリプトの実行を引き起こします。この呼び出しには、2つのRedisキー(key1とkey2)と2つのパラメータが関係しています。

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