Skip to main content
 首页 » 数据库

redis lua脚本 获取的结果为字符串,如何判断字符串相等

2022年07月18日26cloudgamer

业务需求: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\""

本文参考链接:https://www.cnblogs.com/maohuidong/p/15603805.html