热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

phpredis发红包

需求是这样的:现在公司定期发红包,每个礼拜1次后台每一期会设置比如说1元的红包10个2元的100个88元的10个每一期的红包有一个总数目比如现在我说的是第3期抢红包总数是142个下面是mysql存储的设置红...
需求是这样的:

现在公司定期发红包, 每个礼拜1次

后台每一期会设置
比如说 1元的红包10个 2元的100个 88元的10个

每一期的红包有一个总数目 比如现在我说的是第3期抢红包 总数是 142个
下面是mysql存储的设置红包

红包金额 数量   实际完成数量
10        2         1
2         100       100
88        10        3
20        30        22

目前做的流程是这样的:
用户打开这个页面,然后开始设置memcache锁 ,直到程序处理结束(解锁) 。因为红包牵扯到微信进行打款,和微信结合
微信那边什么时候返回成功数据这个时间大概是3s之内
程序里面的逻辑是这样的
1:判断用户是否有资格比如帐号是否正确
2:用户是否抢过红包
3:红包数量是否达到
4:随机分配一个红包(暂时不考虑概率性的)
5:修改mysql数据库的那个红包实际完成数量+1

另外我也想到使用redis的队列使用具体这样:
1:后台发布红包的时候设置一个总数
set red_money_count 142
用户抢红包的时候放到队列里面用rplush进行设置 (原则是先进先出的原则)
然后在进行分配一个红包,对应的那个红包的完成数量+1 ,不过在这期间肯定要和微信进行互通打款 这个比较耗时。。
现在就是要解决这个耗时问题。。

备注:目前已经采用memcache枷锁实现但是还要用户进行排队, 必须1个个处理完 用户体验一点都不好。。。。。

回复内容:

需求是这样的:

现在公司定期发红包, 每个礼拜1次

后台每一期会设置
比如说 1元的红包10个 2元的100个 88元的10个

每一期的红包有一个总数目 比如现在我说的是第3期抢红包 总数是 142个
下面是mysql存储的设置红包

红包金额 数量   实际完成数量
10        2         1
2         100       100
88        10        3
20        30        22

目前做的流程是这样的:
用户打开这个页面,然后开始设置memcache锁 ,直到程序处理结束(解锁) 。因为红包牵扯到微信进行打款,和微信结合
微信那边什么时候返回成功数据这个时间大概是3s之内
程序里面的逻辑是这样的
1:判断用户是否有资格比如帐号是否正确
2:用户是否抢过红包
3:红包数量是否达到
4:随机分配一个红包(暂时不考虑概率性的)
5:修改mysql数据库的那个红包实际完成数量+1

另外我也想到使用redis的队列使用具体这样:
1:后台发布红包的时候设置一个总数
set red_money_count 142
用户抢红包的时候放到队列里面用rplush进行设置 (原则是先进先出的原则)
然后在进行分配一个红包,对应的那个红包的完成数量+1 ,不过在这期间肯定要和微信进行互通打款 这个比较耗时。。
现在就是要解决这个耗时问题。。

备注:目前已经采用memcache枷锁实现但是还要用户进行排队, 必须1个个处理完 用户体验一点都不好。。。。。

直接用mysql进行发红包不就好了,抢到红包的记录在mysql里面,然后根据mysql记录进行打款。mysql里面标记下抢到红包,跟抢到红包并且已经付款就好了。这么几个红包要啥memcache,redis。

和微信进行互通打款,返回成功数据这个时间大概是3s之内。
这个时间不是你写代码能够提高的。

推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • yum安装_Redis —yum安装全过程
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Redis—yum安装全过程相关的知识,希望对你有一定的参考价值。访问https://redi ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文介绍了关系型数据库和NoSQL数据库的概念和特点,列举了主流的关系型数据库和NoSQL数据库,同时描述了它们在新闻、电商抢购信息和微博热点信息等场景中的应用。此外,还提供了MySQL配置文件的相关内容。 ... [详细]
  • 2021最新总结网易/腾讯/CVTE/字节面经分享(附答案解析)
    本文分享作者在2021年面试网易、腾讯、CVTE和字节等大型互联网企业的经历和问题,包括稳定性设计、数据库优化、分布式锁的设计等内容。同时提供了大厂最新面试真题笔记,并附带答案解析。 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 华为鸿蒙系统官网2.0报名方法及适用设备
    本文介绍了华为鸿蒙系统官网2.0报名的适用设备、报名方法以及三种方式,包括在应用商店下载开发者联盟app、在官网中进行报名、在微信公众号中申请体验HarmonyOS 2.0 手机开发者Beta版本。同时提醒错过测试机会的用户可以等待后续的正式版发布。 ... [详细]
  • 本文讨论了在微信浏览器中无法输入的问题,并提出了可能的原因。微信更新可能导致此问题的出现,用户可以尝试清除缓存或重新安装微信浏览器来解决此问题。 ... [详细]
  • 本文介绍了小程序商城引进流量的优化策略与方法。首先,通过附近小程序功能可以增加周围门店的方位并展示,吸引附近用户。其次,利用微信群聊功能,将小程序分享到多个微信群聊中,扩大影响力。最后,通过设置一些固定的活动机制,打造仪式感来吸引用户。这些方法能够有效提升小程序商城的流量,增加用户数量。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
  • IT联合协会创始人分享的学习、创业和人生感悟
    本文分享了IT联合协会创始人的学习、创业和人生感悟,包括创办协会的经历、参与的比赛和活动、所关注的领域以及一些高效技巧。创始人强调了大学和工作前几年的学习资源的重要性,以及沉淀个人学习、生活和灵感资源对于大学和职场能力的影响。他还分享了自己关注的领域,包括软件开发和产品经理相关的专业方向。文章最后,他表达了对未来的期望和目标,并邀请有缘人一起交流。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
author-avatar
撩人无聊的青春
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有