这篇文章主要讲解了通过redis的脚本lua实现抢红包功能的方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。
redis 脚本介绍
Redis从2.6版本开始,通过内嵌支持Lua环境
好处
- 减少网络开销。可以将多个请求通过脚本的形式一次发送,减少网络延迟
- 原子操作。redis将整个脚本当作一个整体去执行,中间不会被其他命令插入,无需担心脚本执行过程中会出现竞态条件
- 复用。客户端发送的脚本会永久保存在redis中,可以复用这一脚本
数据库表设计
简单两张表,一个红包表,一个红包领取记录表
CREATE TABLE `t_red_envelope` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`amount` decimal(10,2) DEFAULT NULL COMMENT '金额',
`num` int(11) DEFAULT NULL COMMENT '数量(分割成几分)',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COMMENT='红包'
CREATE TABLE `t_red_envelope_record` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
`user_id` bigint(20) DEFAULT NULL COMMENT '用户id',
`reward` decimal(10,2) DEFAULT NULL COMMENT '领取到奖励',
`red_envelope_id` bigint(20) DEFAULT NULL COMMENT '红包id',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COMMENT='红包领取记录'
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机通过redis的脚本lua实现抢红包功能的方法
数据库2024-04-02
redis执行lua脚本的实现方法
数据库2024-04-02
基于Redis实现分布式锁的方法(lua脚本版)
数据库2024-04-02
通过Jython调用Python脚本的实现方法
数据库2024-04-02
PHP通过云服务平台实现短信验证码功能的方法
数据库2023-05-22
咦!没有更多了?去看看其它编程学习网 内容吧