[发明专利]一种通用缓存的方法无效
申请号: | 200610112512.2 | 申请日: | 2006-08-22 |
公开(公告)号: | CN101131673A | 公开(公告)日: | 2008-02-27 |
发明(设计)人: | 唐鲲鹏;吕吉;单良 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 北京律诚同业知识产权代理有限公司 | 代理人: | 梁挥;徐金国 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通用 缓存 方法 | ||
1.一种通用缓存的方法,用于获取缓存中存储的数据,其特征在于,包括:
步骤一,在缓存中设置与外部数据源连接的用于获取外部数据的接口;
步骤二,将缓存分配成多个缓存段,将一个数据只存放在一个缓存段里,设置每个缓存段的名称和数据的主健值;
步骤三,当缓存系统收到数据访问请求时,根据请求访问的缓存段名称和数据的主健值,访问对应的缓存段,并判断所述缓存段中是否已存储所请求的数据,若已存储,则输出所请求的数据,若未存储,则通过所述接口从外部数据源获取所请求的数据,保存所请求的数据至所述缓存段中并输出。
2.根据权利要求1所述的通用缓存的方法,其特征在于,还包括:
当访问或者修改所述缓存段时,设置段级锁,锁定所述缓存段的步骤;和
当从所述外部数据源读取所述请求的数据时,为所述缓存段中对应的数据设置行级锁,锁定所请求的数据的步骤。
3.根据权利要求1所述的通用缓存的方法,其特征在于,所述步骤三还包括:
步骤31,当所述缓存段中已存储所请求的数据时,判断所述已存储的数据对应的外部数据源中的数据是否已经被更新;
步骤32,若未被更新,则直接输出所述已存储的数据,若已被更新,则调用所述接口从外部数据源获取对应的数据并更新所述缓存项中存储的数据。
4.根据权利要求2或3所述的通用缓存的方法,其特征在于,所述步骤三具体包括:
步骤41,根据缓存段的名称和所请求的数据的主键值,访问所述缓存项并查找所请求的数据;
步骤42,为所述缓存段添加段级锁,判断所请求的数据是否存储在所述缓存项中,若已存储,则进入步骤43,若未存储,则进入步骤44;
步骤43,判断所请求的数据对应的外部数据源中的数据是否被更新,若未被更新,则进入步骤47,若已被更新,则进入步骤46;
步骤44,判断所请求的数据是否已被添加了行级锁,若没有被添加,则进入步骤46,若所请求的数据已被添加了行级锁,则进入步骤45;
步骤45,释放段级锁,在所述行级锁被释放后,进入步骤47;
步骤46,释放所述段级锁,在所请求的数据上添加行级锁,通过所述接口,从外部数据源获取所请求的数据,保存至所述缓存段中,然后进入步骤47:
步骤47,输出所述缓存段中存放的所请求的数据。
5.根据权利要求4所述的通用缓存的方法,其特征在于,当通过所述接口从外部数据源获取所请求的数据之后,还包括以下步骤:
步骤51,对所述缓存段添加段级锁;
步骤52,判断所述缓存段是否存在足够的剩余空间存储所述通过接口获取的数据,若存在足够的剩余空间,则进入步骤53,若不存在足够的空间,则在所述缓存段中释放出足够的空间,然后进入步骤53;
步骤53,将从所述接口获取的所请求的数据更新所述缓存段,释放所述段级锁和行级锁,输出更新后所请求的数据。
6.根据权利要求5所述的通用缓存的方法,其特征在于,所述步骤52中,当所述缓存段没有足够的存储空间时,采用接触计数器法在所述缓存段中释放足够的存储空间,具体包括以下步骤:
步骤61,查找出所述缓存段中被访问次数最少的数据;
步骤62,若被访问次数最少的数据只有一个,则从所述缓存段中删除所述数据,若被访问次数最少的数据有多个,则将所述多个数据中占用空间最大的数据删除;
步骤63,判断所述缓存段中的剩余空间是否能存储所请求的数据,若能够存储,则进入所述步骤53,若不能够存储,则返回所述步骤61。
7.根据权利要求6所述的通用缓存的方法,其特征在于,还包括:
根据所述缓存段中的各个数据的访问次数和大小,使用单向链表或双向链表对所述各个数据进行排序的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200610112512.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种宽带单载波系统资源分配的表示方法
- 下一篇:一种评价球镍电化学性能的方法