项目简介 语言:Golang 数据库:redis + mysql 项目功能流程 按照conf.yaml中的配置初始化数据库。 用户调用{host}/draw?username={username}进行抽奖。 产生结果:win 或 failed database redis award_time[hash] value:award_name score:winning_time award_remain_num[zset] field:award_name value:award_remain_num 抽奖算法 从剩余奖池中随机抽取此轮中奖的奖品 判断本轮抽奖是否抽中 平均发放奖品的时间间隔:(end_time - start_time) / prizes_total_amount -> A end_time - last_win_time 作为随机数种子 -> B A * 已发放奖品数量 -> C start_time + C + 由B得到的随机时间%A -> D time.now() >= D -> 中奖 使用到的知识点 Go启动一个web服务器 Go连接redis,mysql及操作 time包的使用,时区的注意 读取yaml配置文件 后续功能 加入log框架,记录log日志 加入oauth认证,只有本系统用户可以使用 更改架构使用gin框架