*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