在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
注意: