local updt = redis.call('GET', KEYS[1])
if (not updt) or (tonumber(updt) < tonumber(ARGV[1])) then
return redis.call('MSET', KEYS[1], ARGV[1], KEYS[2], ARGV[2])
else
return redis.error_reply('data is newer on server!')
end
您可以调用为:
EVAL "local updt = redis.call('GET', KEYS[1]) if (not updt) or (tonumber(updt) < tonumber(ARGV[1])) then return redis.call('MSET', KEYS[1], ARGV[1], KEYS[2], ARGV[2]) else return redis.error_reply('data is newer on server!') end" 2 dataUpdated data 1 initVal
1条答案
按热度按时间nr9pn0ug1#
您可以使用lua脚本,使用
EVAL
命令假设您想要同时设置更新时间戳和数据值,并且如果没有时间戳也要设置值(对于首次设置),那么lua脚本可以如下所示:
您可以调用为:
您将在lua脚本中找到一个非常强大的工具,可以最大限度地利用redis。