PHP高并发写入数据重复问题
在注册页面上,如果出现高并发情况下,会出现重复用户名的情况,那么就导致后续登录环节出现混乱。
考虑过使用队列,但是队列有一定的时间差,按照注册流程,注册成功后会马上随机到达用户界面进行下一步操作,如果队列的话,可能到达用户界面时候,用户表注册信息还没有进来
有没有其他什么办法可以解决的呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果要防止用户名重复,那么有比较多的方式来实现。
1.从根源防重复,那么数据库表字段中“名称”加唯一索引。
2.使用redis集合
3.使用redis布隆过滤器
但是1有个问题,虽然能从根源上解决问题,但是如果数据量很大,数据库压力会很大,全部请求会转化为SQL并打到数据库,所以可以使用redis。
如果只是高并发,但是数据量不大,使用redis集合是可以解决问题的,但是如果并发时间长,预估数据量会很大,redis的内存不是那么足,那么使用redis集合可能就不那么太合适,可以使用redis的布隆过滤器进行过滤(对使用布隆过滤器的副作用需要有预估并有合适的解决方案)