eval
EVAL script numkeys key [key ...] arg [arg ...]
script:lua脚本字符串,这段Lua脚本不需要(也不应该)定义函数。
numkeys:lua脚本中【KEYS数组】的大小
key [key ...]:KEYS数组中的元素
arg [arg ...]:ARGV数组中的元素
EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 5 8 10 30 40 50 60 70
-- 输出:8 10 60 70
-- if...then...else...end
EVAL "if KEYS[1] > ARGV[1] then return 1 else return 0 end" 1 10 20
-- 输出:0
EVAL "if KEYS[1] > ARGV[1] then return 1 else return 0 end" 1 20 10
-- 输出:1
执行 redis类库 方法
EVAL "return redis.call('set',KEYS[1],ARGV[1])" 1 name 'xz'
EVAL "return redis.call('get',KEYS[1])" 1 name
-- 输出:xz
EVAL "return redis.call('exists', KEYS[1])" 1 name
-- 输出:1 (存在)
EVAL "return redis.call('exists', KEYS[1])" 1 name2
-- 输出:0 (不存在)
EVAL "if redis.call('exists', KEYS[1]) == 0 then return 'not exist' else return 'exist' end" 1 name
-- 输出:exist
EVAL "if redis.call('exists', KEYS[1]) == 0 then return 'not exist' else return 'exist' end" 1 name2
-- 输出:not exist