这段代码可以保证数据的一致性吗
function updateZsetScoreWithLua($key, $member, $increment) {
global $redis;
$luaScript = "
local member = ARGV[1]
local increment = tonumber(ARGV[2])
local zsetName = KEYS[1]
local originalScore = redis.call('ZSCORE', zsetName, member)
local newScore
if originalScore then
newScore = math.floor(tonumber(originalScore)) + increment
else
newScore = increment
end
redis.call('ZADD', zsetName, newScore, member)
return newScore
";
return $redis->eval($luaScript, [$key, $member, $increment], 1);
}
本作品采用《CC 协议》,转载必须注明作者和本文链接