发红包问题
neptunezx 问:weizeng ,rti 系统那边的红包怎么实现的?
weizeng 答:这个我懂,语言栈是 java,根据 HTTP Request 打过来的积分总数和红包个数字段,rand 函数搞定红包分配,再放到 java 的内存队列里,然后等待用户 pop 即可!
neptunezx 问:有没有更好的实现方式?
weizeng 答:应该有,emmmmm~ 首先考虑当前的业务量,如果业务量比较小,Redis 资源上比较充裕,若是恰好时间比较紧张,可以选择如下简单设计:
设计1:根据红包总数和红包金额,用 rand 函数计算每一个红包应该放多少钱,组成队列存入 Redis,抢红包过程中直接 POP 操作即可,相信我,普通情况请直接选它;
优化:
设计2:将上下文获得的红包总数和红包总金额存入 Redis,在抢红包的过程中一边计算一边抢红包,这种方法的瓶颈在抢红包的过程中需要实时计算本次红包应该抢多少?
对比一下,1 在设计上需要更多的存储空间,只是将红包的计算逻辑提前到红包创建过程中而已,所以设计2 当选Last updated