抽奖活动的剩余抽奖次数如何记录

有一个抽奖活动,每个用户默认初始只给一次抽奖机会,然后可以通过分享增加一次抽奖机会。 这个活动会在线半年或者更长。
现在的设计是在User表中添加一个剩余次数lottery_num <tinyint>字段。
假如当天的日活是50W上下,那么这个抽奖次数应该怎么记录。
如果放入redis中,那redis挂掉怎么办?
但是放入mysql中会影响性能。
有没有大佬讲解迷惑。谢谢!

阅读 3.2k
3 个回答

“放入 redis 中,那 redis 挂掉怎么办”。

好问题,那你其他数据“放到 mysql 里,mysql 挂掉怎么办”?

二者答案是一样的。


50W 日活的产品,User 表加一个字段就“影响性能”了?这是你猜的还是已经做了 Profiling 了?做了把结果贴上来看看怎么回事儿,没做就先别自个儿猜。

建议是新建一张表,仅保存 user_id 和 number,前期肯定是够用的,数据库还没你想的那么不堪

首先Redis是支持持久化的,挂了数据也不会丢失;
Redis也支持分布式,集群,真怕挂了就加机器,不过50W日活单机应该就够了。

如果考虑Mysql的话,频繁写入的数据最好是单建一张表,并根据需要加适当的锁,防止读写错误。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏