alberliu / gim

golang写的IM服务器(服务组件形式)
MIT License
2.57k stars 525 forks source link

seq 表是否可以存在 redis 中? #132

Closed callmePicacho closed 1 year ago

callmePicacho commented 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

alberliu commented 1 year ago

其实直接使用Redis incr