首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于Redis的分布式锁和缓存的方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:深圳市锐鲸数字科技有限公司

摘要:本发明公开一种基于Redis的分布式锁和缓存的方法。本发明通过创建两个线程或进程,一个用来设置锁,另一个用来在第一个设置锁成功后在第一个运行过程中给锁增加过期时长,解决第一个程序在运行中时间过久导致锁过期后无法正常设置结果或其他的应用程序发现没有锁重复执行的问题。然后在第一个线程中使用redis官方库提供的set方法,不同于现有使用的setnx方法,set方法中有其他两个参数,分别是ex和nx,这就意味着可以在setnx的同时设置过期时间,不会出现分两个命令执行可能出现死锁的情况。程序执行完成后不会删除锁,而是将锁中的数据改变,其他程序会根据这个key对应的value的形式来取数据。

主权项:1.一种基于Redis的分布式锁和缓存的方法,其特征在于,包括以下步骤:S1:创建两个线程或进程,一个用来设置锁,另一个用来在第一个设置锁成功后在第一个运行过程中给锁增加过期时长;S2:应用程序生成唯一id,生成唯一缓存键;S3:读取缓存数据,根据步骤S2生成的唯一缓存键去查询redis中的数据;如果有缓存的数据,则判断是否是以‘{’开头;如果是以‘{’开头就说明是正常缓存的结果数据,直接将数据返回;如果不是以‘{’开头就说明有其他应用程序设置了,开始每隔2秒-15秒重复步骤S3;如果没有缓存数据,则进入步骤S4进行设置缓存锁;S4:设置缓存锁,如果在步骤S3中没有读取到缓存值,则说明没有缓存数据且没有正在执行的应用程序,使用set方法来设置锁;key为步骤S2的唯一缓存键,value为步骤S2的唯一id,同时设置nx参数为true,采用这种方式,设置成功会返回ture,设置失败会返回false,可以根据这个来判断此应用程序的缓存锁是否设置成功;设置成功后则开始执行正常程序,设置失败则说明在设置缓存锁时有其他应用程序抢先设置,则此应用程序应该等待2秒-15秒后再去执行步骤S3和步骤S4;S5:在执行步骤S4成功后,也就是设置缓存锁成功后,开始执行正常程序,正常程序执行后要将结果设置到缓存数据中,这时将步骤S6延长过期时间的线程或进程停掉,然后设置结果到redis中;S6:相同应用程序内开启多线程或进程,使用相同的唯一缓存键和唯一id,在第一个程序执行步骤S4成功后不断查询数据并更新过期时间,代表这个程序还在正常执行;等执行程序结束后直接停止此线程或进程。

全文数据:

权利要求:

百度查询: 深圳市锐鲸数字科技有限公司 一种基于Redis的分布式锁和缓存的方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。