[发明专利]高并发REDIS数据库操作方法及系统有效
申请号: | 201710516178.5 | 申请日: | 2017-06-29 |
公开(公告)号: | CN107463612B | 公开(公告)日: | 2019-10-01 |
发明(设计)人: | 熊明强;党艳平;潘仁胜 | 申请(专利权)人: | 北京北信源软件股份有限公司 |
主分类号: | G06F16/25 | 分类号: | G06F16/25;G06F16/2458 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;曹杰 |
地址: | 100081 北京市海淀区中*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 并发 redis 数据库 操作方法 系统 | ||
1.一种高并发REDIS数据库操作方法,其特征在于,包括:
S1、构建Pipeline连接池、一个Redis操作的单例工具类、一个任务线程并启动该任务线程;
S2、为每一个Pipeline分别构建一个
HashMap<String,SynchronousQueue<Object>>和
LinkedBlockingQueue<Object[]>,其中,所述任务线程用于执行Pipeline及其LinkedBlockingQueue<Object[]>;
S3、在Redis操作调用开始,若检查获知当前Pipeline对象未锁定,且当前Pipeline对象对应的LinkedBlockingQueue<Object[]>未满,则构建一个Object[],将Redis操作调用的方法、方法参数列表类型、输入参数封装到该Object[],并随机生成一个uuid,将该uuid放入该Object[],同时创建一个SynchronousQueue<Object>,将uuid作为键值,SynchronousQueue<Object>作为值写入HashMap<String,SynchronousQueue<Object>>;
S4、将该Object[]放入LinkedBlockingQueue<Object[]>,根据该Object[]中uuid从HashMap<String,SynchronousQueue<Object>>中获取uuid对应的SynchronousQueue<Object>,并调用该SynchronousQueue<Object>的take()作为结果返回给Redis操作调用者;
其中,所述一种高并发REDIS数据库操作方法还包括:
S5、计算所述任务线程执行当前Pileline对象对应的LinkedBlockingQueue<Object[]>的耗时及执行命令数,根据所述耗时及执行命令数计算获取每个命令的平均耗时,将所述执行命令数及对应的平均耗时存入内存片段中的历史记录中,从所述历史记录中选择平均耗时最短的执行命令数,设置当前Pipeline对象对应的LinkedBlockingQueue<Object[]>的长度为该执行命令数;
S6、在当前Pileline对象对应的LinkedBlockingQueue<Object[]>执行完成后,逐一通过Object[]中的uuid从当前Pileline对象对应的HashMap<String,SynchronousQueue<Object>>中获取该uuid对应的SynchronousQueue<Object>,调用该SynchronousQueue<Object>的put()方法将Redis命令执行结果放入。
2.根据权利要求1所述的方法,其特征在于,所述S3,还包括:
若检查获知当前Pipeline对象已锁定或者当前Pipeline对象对应的LinkedBlockingQueue<Object[]>已满,则重新从所述Pipeline连接池中获取一个可用的Pipeline继续处理。
3.根据权利要求1或2所述的方法,其特征在于,所述S5,具体包括:
通过Pileline监控所述任务线程,确定当前Pileline对象;
使用当前Pileline对象的sync()执行LinkedBlockingQueue<Object[]>,记录开始执行时间,并将执行中的当前Pileline对象的状态置为锁定;
在LinkedBlockingQueue<Object[]>执行结束时,记录执行结束时间,根据所述开始执行时间和执行结束时间计算所述耗时。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京北信源软件股份有限公司,未经北京北信源软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710516178.5/1.html,转载请声明来源钻瓜专利网。