System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据处理,具体涉及一种优惠券处理方法及系统。
技术介绍
1、随着互联网的发展,许多互联网公司开发的软件中都配置有优惠券功能,用户可以在软件上领取优惠券、使用优惠券。
2、目前对于针对优惠券的处理,主要是直接操作数据库(如mysql数据库)来处理优惠券的相关信息。但是,在诸如促销活动、购物节等情况下,会有大量针对优惠券的操作请求,这时候数据库会面临着高并发操作,这就可能会导致数据库出现锁库、锁表、宕机、服务不可用等问题,针对优惠券的服务的性能和稳定性较差。
技术实现思路
1、有鉴于此,本专利技术实施例提供一种优惠券处理方法及系统,以解决直接操作数据库来处理优惠券这一方式存在的服务的性能和稳定性较差等问题。
2、为实现上述目的,本专利技术实施例提供如下技术方案:
3、本专利技术实施例第一方面公开一种优惠券处理方法,所述方法包括:
4、检测用户在软件上触发的优惠券操作,所述优惠券操作为领取操作、查询操作或使用操作;
5、根据所述用户的用户标识,确定目标redis缓存节点,所述目标redis缓存节点至少存储有所述用户标识对应的领券记录列表、列表索引信息、优惠券计数信息;所述领券记录列表在所述用户打开所述软件时从数据库中预加载至所述目标redis缓存节点;
6、若所述优惠券操作为领取操作,创建新的领券记录;
7、将所述新的领券记录存储到所述目标redis缓存节点和所述数据库中;
8、
9、根据所述索引分值区间,从所述目标redis缓存节点中查询返回结果,并将所述返回结果反馈给所述用户;
10、若所述优惠券操作为使用操作,更新所述目标redis缓存节点和所述数据库中与被使用优惠券对应的相关信息。
11、优选的,所述列表索引信息至少包括:领券记录对应的领券记录标识、领券记录标识对应的索引分值;所述返回结果至少包括:领券记录、所述用户已获得的优惠券数量;
12、根据所述索引分值区间,从所述目标redis缓存节点中查询返回结果,并将所述返回结果反馈给所述用户,包括:
13、从所述目标redis缓存节点所存储的所述列表索引信息中,查询索引分值在所述索引分值区间内的目标领券记录标识,所述索引分值由优惠券的使用状态和过期时间构成;
14、从所述目标redis缓存节点所存储的所述领券记录列表中,查询与所述目标领券记录标识对应的领券记录,将与所述目标领券记录标识对应的领券记录反馈给所述用户;
15、获取所述目标领券记录标识对应的领券记录中的优惠券标识;
16、从所述目标redis缓存节点所存储的所述优惠券计数信息中,查询与所获取的所述优惠券标识对应的所述用户已获得的优惠券数量,将查询得到的所述优惠券数量反馈给所述用户。
17、优选的,所述列表索引信息至少包括:领券记录对应的领券记录标识、领券记录标识对应的索引分值;
18、将所述新的领券记录存储到所述目标redis缓存节点和所述数据库中,包括:
19、根据所述新的领券记录对应的优惠券的起止时间,计算所述新的领券记录对应的索引分值;
20、利用预设的lua脚本和异步存储方式,将所述新的领券记录及其对应的领券记录标识存储至所述目标redis缓存节点和所述数据库的所述领券记录列表中;
21、利用所述lua脚本,将所述新的领券记录对应的领券记录标识、索引分值存储至所述目标redis缓存节点的列表索引信息中,并更新所述目标redis缓存节点的所述优惠券计数信息。
22、优选的,更新所述目标redis缓存节点和所述数据库中与被使用优惠券对应的相关信息,包括:
23、更新所述目标redis缓存节点的所述领券记录列表中与被使用优惠券对应的领券记录中的使用状态、使用时间,并更新所述目标redis缓存节点的所述列表索引信息中与被使用优惠券对应的领券记录对应的索引分值;
24、异步更新所述数据库的所述领券记录列表中与被使用优惠券对应的领券记录中的使用状态、使用时间。
25、优选的,还包括:
26、获取所述目标redis缓存节点中与所述用户标识对应的键key的过期时间;
27、若所述过期时间小于预设时长,延长所述目标redis缓存节点中与所述用户标识对应的key的过期时间。
28、本专利技术实施例第二方面公开一种优惠券处理系统,所述系统包括:
29、检测单元,用于检测用户在软件上触发的优惠券操作,所述优惠券操作为领取操作、查询操作或使用操作;
30、确定单元,用于根据所述用户的用户标识,确定目标redis缓存节点,所述目标redis缓存节点至少存储有所述用户标识对应的领券记录列表、列表索引信息、优惠券计数信息;所述领券记录列表在所述用户打开所述软件时从数据库中预加载至所述目标redis缓存节点;
31、创建单元,用于若所述优惠券操作为领取操作,创建新的领券记录;
32、存储单元,用于将所述新的领券记录存储到所述目标redis缓存节点和所述数据库中;
33、获取单元,用于若所述优惠券操作为查询操作,获取索引分值区间;
34、查询单元,用于根据所述索引分值区间,从所述目标redis缓存节点中查询返回结果,并将所述返回结果反馈给所述用户;
35、更新单元,用于若所述优惠券操作为使用操作,更新所述目标redis缓存节点和所述数据库中与被使用优惠券对应的相关信息。
36、优选的,所述列表索引信息至少包括:领券记录对应的领券记录标识、领券记录标识对应的索引分值;所述返回结果至少包括:领券记录、所述用户已获得的优惠券数量;
37、所述查询单元,包括:
38、第一查询模块,用于从所述目标redis缓存节点所存储的所述列表索引信息中,查询索引分值在所述索引分值区间内的目标领券记录标识,所述索引分值由优惠券的使用状态和过期时间构成;
39、第二查询模块,用于从所述目标redis缓存节点所存储的所述领券记录列表中,查询与所述目标领券记录标识对应的领券记录,将与所述目标领券记录标识对应的领券记录反馈给所述用户;
40、获取模块,用于获取所述目标领券记录标识对应的领券记录中的优惠券标识;
41、第三查询模块,用于从所述目标redis缓存节点所存储的所述优惠券计数信息中,查询与所获取的所述优惠券标识对应的所述用户已获得的优惠券数量,将查询得到的所述优惠券数量反馈给所述用户。
42、优选的,所述列表索引信息至少包括:领券记录对应的领券记录标识、领券记录标识对应的索引分值;
43、所述存储单元,包括:
44、计算模块,用于根据所述新的领券记录对应的优惠券的起止时间,计算所述新的领券记录本文档来自技高网...
【技术保护点】
1.一种优惠券处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述列表索引信息至少包括:领券记录对应的领券记录标识、领券记录标识对应的索引分值;所述返回结果至少包括:领券记录、所述用户已获得的优惠券数量;
3.根据权利要求1所述的方法,其特征在于,所述列表索引信息至少包括:领券记录对应的领券记录标识、领券记录标识对应的索引分值;
4.根据权利要求2或3所述的方法,其特征在于,更新所述目标redis缓存节点和所述数据库中与被使用优惠券对应的相关信息,包括:
5.根据权利要求1所述的方法,其特征在于,还包括:
6.一种优惠券处理系统,其特征在于,所述系统包括:
7.根据权利要求6所述的系统,其特征在于,所述列表索引信息至少包括:领券记录对应的领券记录标识、领券记录标识对应的索引分值;所述返回结果至少包括:领券记录、所述用户已获得的优惠券数量;
8.根据权利要求6所述的系统,其特征在于,所述列表索引信息至少包括:领券记录对应的领券记录标识、领券记录标识对应的索引分值;
...【技术特征摘要】
1.一种优惠券处理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述列表索引信息至少包括:领券记录对应的领券记录标识、领券记录标识对应的索引分值;所述返回结果至少包括:领券记录、所述用户已获得的优惠券数量;
3.根据权利要求1所述的方法,其特征在于,所述列表索引信息至少包括:领券记录对应的领券记录标识、领券记录标识对应的索引分值;
4.根据权利要求2或3所述的方法,其特征在于,更新所述目标redis缓存节点和所述数据库中与被使用优惠券对应的相关信息,包括:
5.根据权利要求1所述的方法...
【专利技术属性】
技术研发人员:刘祖送,陈一鸣,田魁,张成标,
申请(专利权)人:小芒电子商务有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。