要实现的场景:app 打开红包领取红包以及红包绑的优惠券。 我要做的工作: 红包部分已写,我要写领取优惠券的部分。 我的思路: 后台创建优惠券活动时,就将活动数据写入 redis (其中包括最大发放数,领取数,使用数等)。然后 app 端领优惠券时,加入 task 队列(完成用户领取数据的插入),不管 task 执行是否完毕,先将 redis 里对应活动的优惠券领取数+1。task 如果执行失败,再将 redis 里领取数-1。这样子就通过发放数-领取数来告诉用户优惠券是否已领完。 活动过期,就将活动数据从 redis 里删掉。 如果避免用户重复领取,又要将用户领取数据也放到 redis 吗?(只知道访问 db 去判断肯定又慢些)
由于 redis 处理并发用得不多,请教下大家哈。另外 redis 如果存活动数据,是不是用 hmap 好。