在Redis中执行Lua脚本有两种方式:通过eval命令和通过evalsha命令。
eval命令: EVAL script numkeys key [key …] arg [arg …]
例如,执行一个简单的Lua脚本,将两个键的值相加并返回结果:
EVAL "return tonumber(redis.call('GET', KEYS[1])) + tonumber(redis.call('GET', KEYS[2]))" 2 key1 key2
evalsha命令: EVALSHA sha1 numkeys key [key …] arg [arg …]
通过evalsha命令执行Lua脚本可以提高性能,因为Redis会缓存已经加载的脚本。
首先,将Lua脚本加载到Redis中:
SCRIPT LOAD "return tonumber(redis.call('GET', KEYS[1])) + tonumber(redis.call('GET', KEYS[2]))"
然后,执行已经加载的Lua脚本:
EVALSHA c4d7c0a5e5cbd5c8bfcf3a7bd363df6de5866c07 2 key1 key2
注意: