Redis EVAL命令

Redis EVAL命令教程

Redis 的 EVAL 命令使用 Lua 解释器执行 脚本

Redis EVAL命令详解

语法

192.168.98.70:6379> EVAL script numkeys key [key ...] arg [arg ...]

参数

参数 描述
script 参数是一段 Lua 5.1 脚本程序。脚本不必(也不应该)定义为一个 Lua 函数。
numkeys 用于指定键名参数的个数。
key [key …] 从 EVAL 的第三个参数开始算起,表示在脚本中所用到的那些 Redis 键(key),这些键名参数可以在 Lua 中通过全局变量 KEYS 数组,用 1 为基址的形式访问( KEYS[1] , KEYS[2] ,以此类推)。
arg [arg …] 附加参数,在 Lua 中通过全局变量 ARGV 数组访问,访问的形式和 KEYS 变量类似( ARGV[1] 、 ARGV[2] ,诸如此类)。

返回值

返回脚本的执行结果。

时间复杂度

EVAL 和 EVALSHA 可以在 O(1) 复杂度内找到要被执行的脚本,其余的复杂度取决于执行的脚本本身。

可用版本

>= 2.6.0

案例

EVAL执行脚本

使用 EVAL 执行一个 Lua 脚本

127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 name age haicoder 109 1) "name" 2) "age" 3) "haicoder" 4) "109"

我们使用 EVAL 执行了一个 Lua 脚本。

Redis EVAL命令总结

Redis 的 EVAL 命令使用 Lua 解释器执行脚本。