*Redis EVAL 命令 执行 Lua 脚本

*语法

EVAL script numkeys key [key ...] arg [arg ...]

*说明

执行 Lua 脚本。

参数

  • script:Lua 脚本内容
  • numkeys:脚本中 key 参数的数量
  • key:key 参数(通过 KEYS 数组访问)
  • arg:额外参数(通过 ARGV 数组访问)

*返回值

  • 取决于脚本执行结果

*时间复杂度

  • 取决于脚本内容

*版本兼容性

Redis 版本 说明
>= 2.6.0 可用

*示例

# 基本脚本
redis-cli EVAL "return redis.call('GET', KEYS[1])" 1 mykey

# 带参数的脚本
redis-cli EVAL "return redis.call('SET', KEYS[1], ARGV[1])" 1 mykey "hello"

# 原子递增脚本
redis-cli EVAL "local v = redis.call('GET', KEYS[1]); if not v then v = 0 end; v = v + tonumber(ARGV[1]); redis.call('SET', KEYS[1], v); return v" 1 counter 5