Closed callmePicacho closed 1 year ago
当前 seq 表用作发送消息时,获取 seq+1,具体来说,是先进行 select .. for update 锁行,如果能查到,update set seq = seq+1,如果查不到,insert seq = 1,这段逻辑是否可以使用 lua 脚本进行替代呢? return redis.Call("INCR", KEYS[1]) 其中 key 为 user_id,在并发和分布式环境下是否会导致并发问题?求大佬告知 Orz
select .. for update
update set seq = seq+1
insert seq = 1
return redis.Call("INCR", KEYS[1])
其实直接使用Redis incr
当前 seq 表用作发送消息时,获取 seq+1,具体来说,是先进行
select .. for update
锁行,如果能查到,update set seq = seq+1
,如果查不到,insert seq = 1
,这段逻辑是否可以使用 lua 脚本进行替代呢?return redis.Call("INCR", KEYS[1])
其中 key 为 user_id,在并发和分布式环境下是否会导致并发问题?求大佬告知 Orz