最近有个项目 其中有一个需求是 
一个报名的功能,有时间限制开放报名,在开放报名期间内只允许2000人报名 人数到了就显示报名满额
我用的是thinkphp5.1的框架
还求大佬指点思路

解决方案 »

  1.   

    推荐使用redis 这个问题用redis可以轻松解决掉
    如果要使用mysql 先了解一下mysql的锁机制
    思路就是 定义一个数值2000  
    每次有人报名的时候减1
     到0不让继续   并发少的情况可以这么做
    并发多的时候  就需要用到锁、事务 等了
    tp5的DB中好像有个 lock() 你可以看看手册
      

  2.   

    看一下这个文章希望对你有启发
    PHP和Redis实现在高并发下的抢购及秒杀功能
    https://blog.csdn.net/ganggang4321/article/details/89952659
      

  3.   

    这玩意又不是抢购,应该没多少并发可以在报名的方法里做个查询已经报名人数,再次报名的时候,如果count达到2000 ,就满额了或者可以设置个字段,报名一人,减少1,直到减到0 ,显示满额
      

  4.   

    兄弟 , 这种情况Redis轻松搞定 , 而且安全性 , 并发性 , 可用性都是比较高的 , 非得找mysql不擅长的让它干图啥呢 ? 
      

  5.   

    这个有点简单了,随便用个临时表当计数器就行了,比如 id ,start_time ,end_time, count , 开放报名时插入一条数据,开始时间、结束时间,0  第一个报名时update count=1, 第二个... 报名时根据start_time,end_time 查询count,判断是否满额就行了