[发明专利]一种基于固定容量的有序队列缓存方法及装置在审
| 申请号: | 201811028164.X | 申请日: | 2018-09-04 |
| 公开(公告)号: | CN110874360A | 公开(公告)日: | 2020-03-10 |
| 发明(设计)人: | 罗晓东 | 申请(专利权)人: | 北京奇虎科技有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455;G06F16/2458 |
| 代理公司: | 北京智汇东方知识产权代理事务所(普通合伙) 11391 | 代理人: | 康正德;陈智勇 |
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 固定 容量 有序 队列 缓存 方法 装置 | ||
本发明提供了一种基于固定容量的有序队列缓存方法及装置,应用于Redis数据库,所述方法包括:获取至少一个缓存数据的多个属性元素,基于所述缓存数据的多个属性元素在Redis数据库的预设哈希表中生成各缓存数据的信息记录;基于所述各缓存数据的信息记录中多个属性元素的指定属性元素,在所述Redis数据库的至少一个预设容量有序集合中生成所述各缓存数据的存储队列;其中,所述有序集合为内嵌于所述预设哈希表中的键值对存储结构;将所述各缓存数据的指定属性元素作为排序字段对所述存储队列进行排序,构成有序队列。基于本发明提供的方法,不仅可以实现有序队列的存储,还可以提高访问效率,进一步解决高并发时服务器的压力。
技术领域
本发明涉及互联网技术领域,特别是涉及一种基于固定容量的有序队列缓存方法及装置。
背景技术
随着互联网技术的不断发展,对于各种服务的数据所产生的数据以及网络服务所需的数据也在不断增加。目前,传统方案中通常会将数据进行持久化存储,但是,数据进行持久化存储时在访问量并发时会由于其性能不高而导致服务效率差,用户体验低。除此之外,持久化存储还无法在固定容量时维护数据的顺序,对于旧的数据不会主动进行处理,进而占用内存,导致数据访问速度变慢。
发明内容
本发明提供了一种基于固定容量的有序队列缓存方法及装置以克服上述问题或者至少部分地解决上述问题。
根据本发明的一个方面,提供了一种基于固定容量的有序队列缓存方法,应用于Redis数据库,所述方法包括:
获取至少一个缓存数据的多个属性元素,基于各缓存数据的多个属性元素在Redis数据库的预设哈希表中生成所述各缓存数据的信息记录;
基于所述各缓存数据的信息记录中多个属性元素的指定属性元素,在所述Redis数据库的至少一个预设容量有序集合中生成所述各缓存数据的存储队列;其中,所述有序集合为内嵌于所述预设哈希表中的键值对存储结构;
将所述各缓存数据的指定属性元素作为排序字段对所述存储队列进行排序,构成有序队列。
可选地,所述将所述各缓存数据的指定属性元素作为排序字段对所述存储队列进行排序,构成有序队列之后,还包括:
接收待缓存数据并解析出所述待缓存数据的多个属性元素;
基于所述待缓存数据的多个属性元素将所述待缓存数据的信息分别写入所述预设哈希表和所述有序集合。
可选地,所述接收待缓存数据并解析出所述待缓存数据的多个属性元素之后,还包括:
基于所述待缓存数据的多个属性元素生成在所述预设哈希表中添加信息记录的第一写入命令;基于所述待缓存数据的指定属性元素生成在所述有序集合中添加存储队列第二写入命令;
所述将所述待缓存数据的信息分别写入所述预设哈希表和所述有序集合,包括:
基于所述第一写入命令和第二写入命令,分别在所述预设哈希表和有序集中写入所述待缓存数据的信息记录和存储队列。
可选地,所述基于所述待缓存数据的指定属性元素生成在所述有序集合中添加存储队列第二写入命令之后,还包括:
将所述第一写入命令和第二写入命令通过pipeline管道合并为一次发送。
可选地,所述方法还包括:
获取所述有序集合的预设容量,基于所述预设容量设定缓冲容量;其中,所述缓冲容量占所述预设容量的指定百分比。
可选地,所述将所述待缓存数据的信息分别写入所述预设哈希表和所述有序集合之后,还包括:
判断所述有序集合的存储队列的数量是否处于所述预设容量的数量范围内;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811028164.X/2.html,转载请声明来源钻瓜专利网。





