EVAL
执行 Lua 脚本
语法
EVAL script numkeys key [key ...] arg [arg ...]说明
EVAL 在 Redis 服务端执行 Lua 脚本,脚本内所有命令原子执行。用于实现复杂原子操作。
参数
script必填Lua 脚本内容
numkeys必填键参数的数量
key脚本中使用的键名
arg传递给脚本的附加参数
示例
简单脚本
执行原子 GETSET
EVAL "local v = redis.call('GET', KEYS[1]); redis.call('SET', KEYS[1], ARGV[1]); return v" 1 mykey newvalue分布式限流
Lua 实现令牌桶
EVAL "redis.call('INCR', KEYS[1]); redis.call('EXPIRE', KEYS[1], ARGV[1])" 1 rate:key 60