业务需求:redis 实现最简单的get 和set操作,set的数据是字符串
1、当key不存在时,返回 -1
2、当 get的值为 "0"时, set值并设置过期时间,返回1
3、当get的值不为"0"时,返回-2
lua脚本:
if (redis.call('exists', KEYS[1]) == 1) then
local temp = redis.call('get', KEYS[1])
if(temp == "\"0\"") then
redis.call('set',KEYS[1],ARGV[1])
redis.call('expire', KEYS[1],ARGV[2])
return 1
end
return -2
end
return -1
注意: redis中存储的是 "0", redis.call()的返回值temp是 ""0"" ,所以需要 这样判断:temp == "\"0\""