有一个抽奖活动,每个用户默认初始只给一次抽奖机会,然后可以通过分享增加一次抽奖机会。 这个活动会在线半年或者更长。
现在的设计是在User表中添加一个剩余次数lottery_num <tinyint>
字段。
假如当天的日活是50W上下,那么这个抽奖次数应该怎么记录。
如果放入redis中,那redis挂掉怎么办?
但是放入mysql中会影响性能。
有没有大佬讲解迷惑。谢谢!
有一个抽奖活动,每个用户默认初始只给一次抽奖机会,然后可以通过分享增加一次抽奖机会。 这个活动会在线半年或者更长。
现在的设计是在User表中添加一个剩余次数lottery_num <tinyint>
字段。
假如当天的日活是50W上下,那么这个抽奖次数应该怎么记录。
如果放入redis中,那redis挂掉怎么办?
但是放入mysql中会影响性能。
有没有大佬讲解迷惑。谢谢!
首先Redis是支持持久化的,挂了数据也不会丢失;
Redis也支持分布式,集群,真怕挂了就加机器,不过50W日活单机应该就够了。
如果考虑Mysql的话,频繁写入的数据最好是单建一张表,并根据需要加适当的锁,防止读写错误。
3 回答4k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
2 回答3.1k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
1 回答2.4k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
“放入 redis 中,那 redis 挂掉怎么办”。
好问题,那你其他数据“放到 mysql 里,mysql 挂掉怎么办”?
二者答案是一样的。
50W 日活的产品,User 表加一个字段就“影响性能”了?这是你猜的还是已经做了 Profiling 了?做了把结果贴上来看看怎么回事儿,没做就先别自个儿猜。