[发明专利]一种空间极紧凑的缓存技术在审
申请号: | 201910947570.4 | 申请日: | 2019-10-08 |
公开(公告)号: | CN110737661A | 公开(公告)日: | 2020-01-31 |
发明(设计)人: | 王君武;申玥;黄张勇 | 申请(专利权)人: | 深圳市高斯通信息技术有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2455 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518000 广东省深圳市南*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缓存技术 存储单元 缓存 二分法查找 计算机内存 查找 存储空间 软件开发 数组元素 顺序存储 低位 整型 紧凑 占用 | ||
本发明涉及软件开发缓存技术领域,尤其为一种空间极紧凑的缓存技术,包括基础存储单元,所述基础存储单元包键、值、位数和键值对,所述基础存储单元是一个长整型(long int),一共8个字节(byte),所述键(key)根据最大值所需要的位数(bits)存放在若干高位上,所述值(value)根据最大值所需要的位数(bits)存放在若干低位上,所述键值对(key‑value)按照键(key)的大小按顺序存储在每个数组元素中,查找时则根据键的值用二分法查找该键值对的具体位置,通过该缓存技术占用存储空间极少,该缓存技术的查找速度在目前的计算机内存大小下比基于Hash表的缓存更快。
技术领域
本发明涉及软件开发缓冲技术领域,具体为一种空间极紧凑的缓存技术。
背景技术
在软件开发中,缓存技术是一种极其常见的技术,缓存技术的目的在于通过避免访问速度很慢的存储设备来提高软件的性能、响应能力。目前,在软件领域,缓存技术主要是基于哈希表来实现。哈希表不但不能压缩所要存储的key和value,其自身还要占据一个较大的数组以及大量的链表(或其他数据结构),这些额外的空间占用加上软件本身需要存储的key和value常常使得单机内存不足以存储大量的内容。这种限制迫使人们不得不寻求分布式缓存技术,但是分布式缓存技术又有其固有缺点:其一是访问慢,软件在访问分布式缓存时不得不通过网络来实现,而网络IO是软件性能瓶颈的一个重要因素;其二是成本高,为了缓存大量数据不得不使用大量计算机共同来存储数据,多机器组成的集群又给维护带来更高的成本;其三,实现复杂,分布式缓存必须考虑难以处理的机器宕机,网络断连等各种意外情况,实现好分布式缓存需要付出较大精力。
在软件开发的实践过程中,我们注意到一类比较特殊的缓存场景,在这种场景中,需要存储的key是一个整数(或者可以映射成一个整数),其value则是由一系列小的整数(或者可以映射成一个小的整数)或者布尔值。针对这种场景,本技术发明提供了一个占用内存空间非常紧凑的缓存方案。该技术可以在缓存1亿条记录的情况下仅占用800M左右的内存空间,是普通基于哈希表的缓存所需空间的几十分之一,这种空间紧凑的缓存技术可以让大量数据在应用内使用而避开网络访问,从而大幅提高软件的性能以及研发成本,因此需要一种空间极紧凑的缓存技术对上述问题做出改善。
发明内容
本发明的目的在于提供一种空间极紧凑的缓存技术,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种空间极紧凑的缓存技术,包括基础存储单元,其特征在于:所述基础存储单元包键、值、位数和键值对。
优选的,所述基础存储单元是一个长整型(long int),一共8个字节(byte)。
优选的,所述键(key)根据最大值所需要的位数(bits)存放在若干高位上。
优选的,所述值(value)根据最大值所需要的位数(bits)存放在若干低位上。
优选的,所述键值对(key-value)按照键(key)的大小按顺序存储在每个数组元素中,查找时则根据键的值用二分法查找该键值对的具体位置。
优选的,包括以下实现步骤方式:
S1:缓存初始化传入两个参数:最大容量、键(key)所需位数,获取最大值方法,通过传入位数返回该位数所能表示的最大整数,获取特定位置掩码(mask),传入位置(从高到低第几位)和宽度(最大值占几位),返回对应掩码,获取键,传入数据在数组中的位置(数组下标),将该位置数组元素无符号右移64-键的宽度即得到对应的键的值;
S2:根据键查找元素,传入需要查找的键的值,本缓存的元素是根据键的大小顺序存储的,查找元素时通过上述获取键的方法获得每次探测的键的值,当查到所传入的键时,返回该元素在数组中的下标(index),否则,返回-1表示没有找到;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市高斯通信息技术有限公司,未经深圳市高斯通信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910947570.4/2.html,转载请声明来源钻瓜专利网。