[发明专利]redis事务回滚方法、装置、计算机设备和存储介质在审
申请号: | 202110726574.7 | 申请日: | 2021-06-29 |
公开(公告)号: | CN113420011A | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 宋欣欣 | 申请(专利权)人: | 平安消费金融有限公司 |
主分类号: | G06F16/21 | 分类号: | G06F16/21;G06F16/22;G06F16/23 |
代理公司: | 深圳市明日今典知识产权代理事务所(普通合伙) 44343 | 代理人: | 王杰辉;罗燕 |
地址: | 200000 上海市自由*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | redis 事务 方法 装置 计算机 设备 存储 介质 | ||
1.一种redis事务回滚方法,其特征在于,包括以下步骤:
获取redis事务中的若干命令;所述命令包括get命令和非get命令;
获取各个所述非get命令对应的key的原始结果;
将所述原始结果按照预设规则存储在redis数据库中;
将若干所述命令按照加入所述redis事务中的顺序依次执行,并实时检测所述命令的执行是否异常;
若检测到当前执行的所述命令异常,根据所述原始结果对异常的所述命令和已经执行完成的所述命令进行事务回滚操作。
2.根据权利要求1所述的redis事务回滚方法,其特征在于,所述获取各个所述非get命令对应的key的原始结果的步骤,包括:
获取各个所述非get命令对应的key;
构建所述key对应的目的get命令,并根据所述目的get命令获取所述key对应的原始结果。
3.根据权利要求1所述的redis事务回滚方法,其特征在于,所述将所述原始结果按照预设规则存储在redis数据库中的步骤,包括:
将所述原始结果以string类型存储在所述redis数据库中预设的undolog buffer中。
4.根据权利要求1所述的redis事务回滚方法,其特征在于,所述获取redis事务中的若干命令的步骤之前,包括:
检测各个所述命令的命令格式是否正确;
若正确,进入获取需要redis执行的若干命令的步骤。
5.根据权利要求1所述的redis事务回滚方法,其特征在于,所述根据所述原始结果对异常的所述命令和已经执行完成的所述命令进行事务回滚操作的步骤,包括:
检测异常的所述命令之前是否存在其他非get命令;
若存在,获取异常的所述非get命令和异常的所述非get命令之前的其他非get命令的个数之和;
将所述个数之和与预设个数进行比较;
若所述个数之和大于所述预设个数,通过checkpoint机制对异常的所述非get命令和异常的非get命令之前的其他非get命令进行事务回滚操作。
6.根据权利要求1所述的redis事务回滚方法,其特征在于,所述根据所述原始结果对异常的所述命令和已经执行完成的所述命令进行事务回滚操作的步骤之后,包括:
检测所述事务回滚操作是否完成;
若完成,删除所述redis数据库中存储的所述原始结果;
若未完成,重复预设次数的事务回滚操作。
7.根据权利要求1所述的redis事务回滚方法,其特征在于,所述实时检测所述命令的执行是否异常的步骤,包括:
通过try catch命令实时检测所述命令的执行是否异常。
8.一种redis事务回滚装置,其特征在于,包括:
第一获取单元,用于获取redis事务中的若干命令;所述命令包括get命令和非get命令;
第二获取单元,用于获取各个所述非get命令对应的key的原始结果;
存储单元,用于将所述原始结果按照预设规则存储在redis数据库中;
第一检测单元,用于将若干所述命令按照加入所述redis事务中的顺序依次执行,并实时检测所述命令的执行是否异常;
回滚单元,用于若检测到当前执行的所述命令异常,根据所述原始结果对异常的所述命令和已经执行完成的所述命令进行事务回滚操作。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的redis事务回滚方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的redis事务回滚方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安消费金融有限公司,未经平安消费金融有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110726574.7/1.html,转载请声明来源钻瓜专利网。