[发明专利]基于多线程的数据同步方法、装置、设备和存储介质在审
| 申请号: | 201910299113.9 | 申请日: | 2019-04-15 |
| 公开(公告)号: | CN110134500A | 公开(公告)日: | 2019-08-16 |
| 发明(设计)人: | 杨小彦 | 申请(专利权)人: | 平安普惠企业管理有限公司 |
| 主分类号: | G06F9/48 | 分类号: | G06F9/48 |
| 代理公司: | 北京市京大律师事务所 11321 | 代理人: | 刘挽澜 |
| 地址: | 518027 广东省深圳市前海深港合作区前*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 队列 哈希 线程 存储介质 数据同步 多线程 队列选择规则 数据处理技术 缓存 哈希算法 数据操作 不一致 入队 放入 预设 分类 创建 保证 | ||
本发明涉及数据处理技术领域,尤其涉及一种基于多线程的数据同步方法、装置、设备和存储介质。该方法包括:批量创建多个队列,对每个队列开启一条独立的线程;获取操作任务,对数据名称通过哈希算法计算得到哈希值,将哈希值与预设的队列选择规则进行比较,得到与哈希值对应的指定队列名称,将操作任务放入指定队列名称对应的队列中;启动多个线程,通过多个线程分别执行对应队列中的操作任务。本发明使用队列将操作任务通过哈希值分类执行,对同一个数据的操作放在同一个队列中,利用队列的先入队的任务先执行的特性,保证了数据操作顺序,不会出现缓存同步不及时带来的数据不一致风险。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于多线程的数据同步方法、装置、设备和存储介质。
背景技术
为了增加数据的读效率,一般会将数据库中的部分用户经常访问的数据放在缓存中。一般缓存的更新都是在数据库数据更新的同时进行。但是缓存的更新不及时造成的数据读取错误的问题也十分的严重。
例如当一个商品a价格在数据库中已经由a1更新成a2,但是缓存中可能由于缓存的延迟没有及时同步更新。此时,用户在读取缓存中a中的数据时,获得a=a1,缓存中的数据延迟后,才被同步更新成a2,这就造成了部分用户不能及时获取到真实的数据,导致如价格计算错误等严重后果,影响用户体验。
发明内容
有鉴于此,有必要针对数据库与缓存数据更新不一致,存在较大的延时问题,提供一种基于多线程的数据同步方法、装置、设备和存储介质。
一种基于多线程的数据同步方法,包括:
批量创建多个队列,对每个所述队列开启一条独立的线程,用以执行对应所述队列中的操作任务;
获取操作任务,所述操作任务中包含有数据名称,对所述数据名称通过哈希算法计算得到哈希值,将所述哈希值与预设的队列选择规则进行比较,得到与所述哈希值对应的指定队列名称,将所述操作任务放入所述指定队列名称对应的队列中;
启动多个线程,通过多个所述线程分别执行对应队列中的所述操作任务。
一种可能的设计中,所述批量创建多个队列,对每个所述队列开启一条独立的线程,用以执行对应所述队列中的操作任务,包括:
定义一个队列类,包括定义存放数据位置、头指针和尾指针;
批量创建队列,定义每个所述队列的队列名称和队列长度,初始化每个所述队列,且将每个所述队列的头指针和尾指针都指向空;
开启多个线程,对每个所述队列指定一条独立的线程,用以独立执行所述队列中的操作任务。
一种可能的设计中,所述对所述数据名称通过哈希算法计算得到哈希值,包括:
将所述数据名称转换成位字符串;
对所述位字符串进行补位,以使所述位字符串的长度在对512取模后余数为448;
对补位后的所述位字符串进行补长度,将补好长度的所述位字符串分成至少一个512位的数据块;
将多个所述数据块定义为M1,M2,M3……Mn,对第Mi个所述数据块计算消息摘要:
将Mi分成16个字W0,W1,W1……W15;
当t=16到79时,令Wt=S1(Wt-3XOR Wt-8XOR Wt-14XOR Wt-16),其中, Sn(X)表示循环左移操作符,X为一个字,n为整数,0≤n≤32,t为循环次数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安普惠企业管理有限公司,未经平安普惠企业管理有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910299113.9/2.html,转载请声明来源钻瓜专利网。





