在注册页面上,如果出现高并发情况下,会出现重复用户名的情况,那么就导致后续登录环节出现混乱。
考虑过使用队列,但是队列有一定的时间差,按照注册流程,注册成功后会马上随机到达用户界面进行下一步操作,如果队列的话,可能到达用户界面时候,用户表注册信息还没有进来
有没有其他什么办法可以解决的呢?
在注册页面上,如果出现高并发情况下,会出现重复用户名的情况,那么就导致后续登录环节出现混乱。
考虑过使用队列,但是队列有一定的时间差,按照注册流程,注册成功后会马上随机到达用户界面进行下一步操作,如果队列的话,可能到达用户界面时候,用户表注册信息还没有进来
有没有其他什么办法可以解决的呢?
如果要防止用户名重复,那么有比较多的方式来实现。
1.从根源防重复,那么数据库表字段中“名称”加唯一索引。
2.使用redis集合
3.使用redis布隆过滤器
但是1有个问题,虽然能从根源上解决问题,但是如果数据量很大,数据库压力会很大,全部请求会转化为SQL并打到数据库,所以可以使用redis。
如果只是高并发,但是数据量不大,使用redis集合是可以解决问题的,但是如果并发时间长,预估数据量会很大,redis的内存不是那么足,那么使用redis集合可能就不那么太合适,可以使用redis的布隆过滤器进行过滤(对使用布隆过滤器的副作用需要有预估并有合适的解决方案)
5 回答3.2k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读