CN111159144B - 一种缓存系统和方法 - Google Patents
一种缓存系统和方法 Download PDFInfo
- Publication number
- CN111159144B CN111159144B CN201911184528.8A CN201911184528A CN111159144B CN 111159144 B CN111159144 B CN 111159144B CN 201911184528 A CN201911184528 A CN 201911184528A CN 111159144 B CN111159144 B CN 111159144B
- Authority
- CN
- China
- Prior art keywords
- cache
- key
- configuration information
- database
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Abstract
本申请公开了一种缓存系统和方法,包括:服务器端和客户端;所述服务器端,用于对缓存键进行处理,得到所述缓存键对应的数据库、表和子键,根据数据库和表存储缓存键和确定配置信息,将所述配置信息发送至客户端;所述客户端,用于接收并存储所述配置信息,根据所述配置信息对服务器中的缓存键进行管理。通过对缓存键进行处理,得到所述缓存键对应的数据库、表和子键,并对数据库和表进行哈希编码和取余,能够将属于同一数据库和表的数据和/或文件存储在缓存单元中的同一存储集合,能够根据数据库和表对缓存键进行批量管理,避免了服务器端在删除时需要对缓存单元进行全库整体扫描的性能问题,速度快,管理性强,效率高。
Description
技术领域
本申请涉及数据存储领域,尤其涉及一种缓存系统和方法。
背景技术
缓存是指可以进行高速数据交换的存储器,它先于内存与CPU交换数据,因此速率很快。当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;若没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在CPU缓存中,只有大约10%需要从内存读取。大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。通过对缓存进行管理,如及时增加需要的数据以及删除不需要的数据,能够提高CPU的工作效率。
然而,常见的key、value型缓存系统,管理性较差,且批量删除缓存中一定范围内的key时,效率能很低。
因此,需要提供一种管理性强、效率高的缓存系统和方法。
发明内容
为解决以上问题,本申请提出了一种缓存系统和方法。
一方面,本申请提出一种基于视线跟踪的缓存系统,包括:服务器端和客户端;
所述服务器端,用于对缓存键进行处理,得到所述缓存键对应的数据库、表和子键,根据数据库和表存储缓存键和确定配置信息,将所述配置信息发送至客户端;
所述客户端,用于接收并存储所述配置信息,根据所述配置信息对服务器中的缓存键进行管理。
优选地,所述服务器端包括:
处理单元,用于对缓存键进行处理,得到所述缓存键对应的数据库、表和子键的缓存键,根据数据库和表确定配置信息,将所述配置信息发送到配置节点中,对缓存键的库和表进行哈希编码,得到缓存键的哈希值,根据缓存单元中的存储集合的数量,对所述哈希值取余,得到取余结果,将缓存键发送至缓存单元中对应的存储集合;
缓存单元,用于生成多个存储集合,根据缓存键的所述取余结果,保存所述缓存键到相应的存储集合中;
配置节点,用于存储配置信息,并将所述配置信息发送至客户端。
优选地,所述客户端包括:
本地缓存,用于接收并存储配置节点发送的所述配置信息;
管理单元,根据所述配置信息对服务器中的缓存键进行批量删除、批量修改,以及增加服务器中的缓存键。
优选地,所述处理单元还用于对数据库和表设置密码,并将密码配置到配置信息中。
优选地,所述数据库为缓存键的第一前缀。
优选地,所述表为缓存键的第二前缀。
优选地,所述子键包括业务数据。
第二方面,本申请提出一种缓存方法,包括:
服务器端对缓存键进行处理,得到所述缓存键对应的数据库、表和子键的缓存键;
服务器端根据数据库和表存储缓存键和确定配置信息,将所述配置信息发送至客户端;
客户端接收并存储配置节点发送的所述配置信息,根据所述配置信息对服务器中的缓存键进行管理。
优选地,所述服务器端根据数据库和表存储缓存键,包括:
服务器端中的处理单元对缓存键的库和表进行哈希编码,得到缓存键的哈希值;
服务器端中的处理单元根据缓存单元中的存储集合的数量,对所述哈希值取余,得到取余结果,将缓存键发送至缓存单元中对应的存储集合;
缓存单根据缓存键的所述取余结果,保存所述缓存键到相应的存储集合中。
优选地,所述根据所述配置信息对服务器中的缓存键进行管理,包括:
客户端中的管理单元根据所述配置信息对服务器中的缓存键进行批量删除、批量修改,以及增加服务器中的缓存键。
本申请的优点在于:对缓存键进行处理,得到所述缓存键对应的数据库、表和子键,能够根据数据库和表对缓存键进行批量管理,不需要全库扫描,管理性强,效率高。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选事实方案的目的,而并不认为是对本申请的限制。而且在整个附图中,用同样的参考符号表示相同的部件。在附图中:
图1是本申请提供的一种缓存系统的示意图;
图2是本申请提供的一种缓存系统的删除数据示意图;
图3是本申请提供的一种缓存系统的增加数据示意图;
图4是本申请提供的一种缓存方法的步骤示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
根据本申请的实施方式,提出一种基于视线跟踪的缓存系统,如图1所示,包括:服务器端101和客户端102;
服务器端,用于对缓存键(key)进行处理,得到缓存键对应的数据库、表和子键,根据数据库和表存储缓存键和确定配置信息,将配置信息发送至客户端;
客户端,用于接收并存储配置信息,根据配置信息对服务器中的缓存键进行管理。
服务器端包括:
处理单元,用于对缓存键进行处理,得到缓存键对应的数据库、表和子键的缓存键,根据数据库和表确定配置信息,将配置信息发送到配置节点中,对缓存键的库和表进行哈希(hash)编码,得到缓存键的哈希值,根据缓存单元(缓存实例)中的存储集合的数量,对哈希值取余,得到取余结果,将缓存键发送至缓存单元中对应的存储集合;
缓存单元,用于生成多个存储集合,根据缓存键的取余结果,保存缓存键到相应的存储集合中;
配置节点,用于存储配置信息,并将配置信息发送至客户端。
客户端包括:
本地缓存,用于接收并存储配置节点发送的配置信息;
管理单元,根据配置信息对服务器中的缓存键进行批量删除、批量修改,以及增加服务器中的缓存键。
处理单元还用于对数据库和表设置密码,并将密码配置到配置信息中。
数据库为缓存键的第一前缀。
表为缓存键的第二前缀。
子键包括业务数据,其保证了数据在缓存系统中的唯一性,避免缓存键的冲突。
配置信息包括所有数据库和表等。
缓存单元中的数据库和表信息会存到服务器的配置节点中,同时会在缓存系统启动时将数据库和表等配置信息存到本地缓存中,从而提高缓存的性能。
客户端包括一个或多个。
通过对服务器端中的每个缓存键进行同样的处理,能够使有同样前缀的缓存键保存在了同一个存储集合中,方便批量,删除和修改,速度快。
下面,对本申请实施方式进行进一步说明。
以编程人员进行项目编程为例。
一个项目中包括多个组成部分,每个部分有很多文件和数据。比如项目A部分B文件C,其中,项目A就是第一前缀(数据库),部分B就是第二前缀(表),文件C就是业务数据(子键)。
这样,属于同一个项目的同一个部分中的所有文件和数据等就具有同样的第一和第二前缀。
服务器端初始化时,会在缓存单元预设N个存储集合。
同样的第一和第二前缀的hash值是一样的,取余也是一样的,这样就存在同一个存储集合里了。假设服务器端一共有8个存储集合,项目A部分B的哈希值对8取余为3,则将数据库和表为项目A部分B的所有数据和文件等都放入第三存储集合。
如图2所示,当用户需要删除以有的数据库和/或表时,可以从客户端发起表删除操作,由于客户端中的本地缓存也有配置信息,这样客户端可以直接通过配置信息中的数据库和表计算hash值,取余,就能确定要批量删除的数据和/或文件在服务器端缓存单元中的哪个存储集合中,服务器端再按照数据库和表名,从对应的集合中获取表中的缓存键,对缓存键的数据进行逐个删除。
如图3所示,当用户需要增加新的数据库和/或表时,或者在以有的数据库和/或表中增加数据时,可以从客户端向服务器端发起表插入操作。服务器的处理单元对需要增加的数据的数据库和表进行哈希编码后对存储集合的数量取余,得到取余结果,将缓存键发送至缓存单元中对应的存储集合。同时更新配置节点中的配置信息,配置节点更新后,将更新后的配置信息发送至客户端的本地缓存,更新本地缓存。
服务器端可以通过对数据库和表信息设置密码等信息,避免不同的项目使用同一数据库中的表,从而达到在服务器端缓存单元中针对缓存键的权限管理。用户根据其拥有的密码等,从客户端对数据(缓存键)进行管理时,能够避免对其他数据库或其他表的误操作,管理性强。
根据本申请的实施方式,还提出一种缓存方法,如图4所示,包括:
S101,服务器端对缓存键进行处理,得到缓存键对应的数据库、表和子键的缓存键;
S102,服务器端根据数据库和表存储缓存键和确定配置信息,将配置信息发送至客户端;
S103,客户端接收并存储配置节点发送的配置信息,根据配置信息对服务器中的缓存键进行管理。
服务器端根据数据库和表存储缓存键,包括:
服务器端中的处理单元对缓存键的库和表进行哈希编码,得到缓存键的哈希值;
服务器端中的处理单元根据缓存单元中的存储集合的数量,对哈希值取余,得到取余结果,将缓存键发送至缓存单元中对应的存储集合;
缓存单根据缓存键的取余结果,保存缓存键到相应的存储集合中。
根据配置信息对服务器中的缓存键进行管理,包括:
客户端中的管理单元根据配置信息对服务器中的缓存键进行批量删除、批量修改,以及增加服务器中的缓存键。
本申请的系统中,通过对缓存键进行处理,得到所述缓存键对应的数据库、表和子键,并对数据库和表进行哈希编码和取余,能够将属于同一数据库和表的数据和/或文件存储在缓存单元中的同一存储集合,能够根据数据库和表对缓存键进行批量管理,避免了服务器端在删除时需要对缓存单元进行全库整体扫描的性能问题,速度快,管理性强,效率高。同时,服务器端还能够对数据库和表信息设置密码等信息,避免不同的项目使用同一数据库中的表,从而达到在服务器端缓存单元中针对缓存键的权限管理。用户根据其拥有的密码等,从客户端对数据(缓存键)进行管理时,能够避免对其他数据库或其他表的误操作,管理性强。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种缓存方法,其特征在于,包括:
服务器端对缓存键进行处理,得到所述缓存键对应的数据库、表和子键的缓存键;
服务器端根据数据库和表存储缓存键和确定配置信息,将所述配置信息发送至客户端;
客户端的本地缓存接收并存储服务器端的配置节点发送的所述配置信息,根据所述配置信息对服务器中的缓存键进行管理;
所述服务器端根据数据库和表存储缓存键,包括:
服务器端中的处理单元对缓存键的库和表进行哈希编码,得到缓存键的哈希值;
服务器端中的处理单元根据缓存单元中的存储集合的数量,对所述哈希值取余,得到取余结果,将缓存键发送至缓存单元中对应的存储集合;
服务器端中的缓存单元根据缓存键的所述取余结果,保存所述缓存键到相应的存储集合中;
所述根据所述配置信息对服务器中的缓存键进行管理,包括:
客户端中的管理单元根据所述配置信息对服务器中的缓存键进行批量删除、批量修改,以及增加服务器中的缓存键;
当用户需要增加新的数据库和/或表时,或者在以有的数据库和/或表中增加数据时,从客户端向服务器端发起表插入操作;服务器的处理单元对需要增加的数据的数据库和表进行哈希编码后对存储集合的数量取余,得到取余结果,将缓存键发送至缓存单元中对应的存储集合;更新配置节点中的配置信息,配置节点更新后,将更新后的配置信息发送至客户端的本地缓存,更新本地缓存。
2.一种使用如权利要求1所述缓存方法的缓存系统,其特征在于,包括:服务器端和客户端;
所述服务器端,用于对缓存键进行处理,得到所述缓存键对应的数据库、表和子键,根据数据库和表存储缓存键和确定配置信息,将所述配置信息发送至客户端;
所述客户端,用于接收并存储所述配置信息,根据所述配置信息对服务器中的缓存键进行管理。
3.如权利要求2所述的缓存系统,其特征在于,所述服务器端包括:
处理单元,用于对缓存键进行处理,得到所述缓存键对应的数据库、表和子键的缓存键,根据数据库和表确定配置信息,将所述配置信息发送到配置节点中,对缓存键的库和表进行哈希编码,得到缓存键的哈希值,根据缓存单元中的存储集合的数量,对所述哈希值取余,得到取余结果,将缓存键发送至缓存单元中对应的存储集合;
缓存单元,用于生成多个存储集合,根据缓存键的所述取余结果,保存所述缓存键到相应的存储集合中;
配置节点,用于存储配置信息,并将所述配置信息发送至客户端。
4.如权利要求3所述的缓存系统,其特征在于,所述客户端包括:
本地缓存,用于接收并存储配置节点发送的所述配置信息;
管理单元,根据所述配置信息对服务器中的缓存键进行批量删除、批量修改,以及增加服务器中的缓存键。
5.如权利要求3所述的缓存系统,其特征在于,所述处理单元还用于对数据库和表设置密码,并将密码配置到配置信息中。
6.如权利要求3所述的缓存系统,其特征在于,所述数据库为缓存键的第一前缀。
7.如权利要求3所述的缓存系统,其特征在于,所述表为缓存键的第二前缀。
8.如权利要求3所述的缓存系统,其特征在于,所述子键包括业务数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911184528.8A CN111159144B (zh) | 2019-11-27 | 2019-11-27 | 一种缓存系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911184528.8A CN111159144B (zh) | 2019-11-27 | 2019-11-27 | 一种缓存系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111159144A CN111159144A (zh) | 2020-05-15 |
CN111159144B true CN111159144B (zh) | 2023-09-08 |
Family
ID=70556183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911184528.8A Active CN111159144B (zh) | 2019-11-27 | 2019-11-27 | 一种缓存系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111159144B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706781A (zh) * | 2009-09-29 | 2010-05-12 | 北京星网锐捷网络技术有限公司 | 一种数据库缓存集中管理方法和系统 |
CN103595776A (zh) * | 2013-11-05 | 2014-02-19 | 福建网龙计算机网络信息技术有限公司 | 分布式缓存方法及系统 |
CN104361030A (zh) * | 2014-10-24 | 2015-02-18 | 西安未来国际信息股份有限公司 | 一种具有任务分发功能的分布式缓存架构及缓存方法 |
JP2015162686A (ja) * | 2014-02-25 | 2015-09-07 | 日本電信電話株式会社 | キャッシュ制御装置及び方法及びプログラム |
CN105868045A (zh) * | 2015-01-21 | 2016-08-17 | 中国移动通信集团陕西有限公司 | 一种数据缓存方法及装置 |
CN109033292A (zh) * | 2018-07-13 | 2018-12-18 | 南京邮电大学 | 一种数据库分布式缓存系统及方法 |
CN109800272A (zh) * | 2019-02-25 | 2019-05-24 | 广州虎牙信息科技有限公司 | 缓存数据同步方法、服务器、应用系统及存储装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6615317B2 (en) * | 2000-07-07 | 2003-09-02 | Fitech Laboratories, Inc. | Methods and systems for providing a highly scalable synchronous data cache |
WO2016141522A1 (en) * | 2015-03-09 | 2016-09-15 | Intel Corporation | Memcached systems having local caches |
-
2019
- 2019-11-27 CN CN201911184528.8A patent/CN111159144B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101706781A (zh) * | 2009-09-29 | 2010-05-12 | 北京星网锐捷网络技术有限公司 | 一种数据库缓存集中管理方法和系统 |
CN103595776A (zh) * | 2013-11-05 | 2014-02-19 | 福建网龙计算机网络信息技术有限公司 | 分布式缓存方法及系统 |
JP2015162686A (ja) * | 2014-02-25 | 2015-09-07 | 日本電信電話株式会社 | キャッシュ制御装置及び方法及びプログラム |
CN104361030A (zh) * | 2014-10-24 | 2015-02-18 | 西安未来国际信息股份有限公司 | 一种具有任务分发功能的分布式缓存架构及缓存方法 |
CN105868045A (zh) * | 2015-01-21 | 2016-08-17 | 中国移动通信集团陕西有限公司 | 一种数据缓存方法及装置 |
CN109033292A (zh) * | 2018-07-13 | 2018-12-18 | 南京邮电大学 | 一种数据库分布式缓存系统及方法 |
CN109800272A (zh) * | 2019-02-25 | 2019-05-24 | 广州虎牙信息科技有限公司 | 缓存数据同步方法、服务器、应用系统及存储装置 |
Non-Patent Citations (1)
Title |
---|
刘耀林 ; 程菊花 ; .移动数据库技术的缓存管理策略研究.计算机时代.2010,(第08期),14-15. * |
Also Published As
Publication number | Publication date |
---|---|
CN111159144A (zh) | 2020-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7000074B2 (en) | System and method for updating a cache | |
US10628382B2 (en) | Teleporting content over network using hash matches | |
AU2010265607A1 (en) | Method for finding, updating and synchronizing modified record item and data synchronizing device | |
CN107844488B (zh) | 数据查询方法和装置 | |
US20200133558A1 (en) | Method, device and computer program product for data backup | |
US8554889B2 (en) | Method, system and apparatus for managing computer identity | |
CN114064668A (zh) | 用于存储管理的方法、电子设备和计算机程序产品 | |
WO2020024446A1 (zh) | 数据的存储方法及装置、存储介质、计算机设备 | |
CN105592083A (zh) | 终端利用令牌访问服务器的方法和装置 | |
JP2017005447A (ja) | 連絡先管理プログラム、連絡先管理システム、及び連絡先管理方法 | |
CN111159144B (zh) | 一种缓存系统和方法 | |
CN113407560A (zh) | 更新消息处理方法、数据同步方法、配置信息配置方法 | |
CN111666265B (zh) | 一种数据管理方法、装置、服务器及存储介质 | |
WO2014069033A1 (en) | Communication control device, communication device, and program | |
CN108241685B (zh) | 数据查询的方法和查询客户端 | |
US20090070461A1 (en) | Distributed file system and method of replacing cache data in the distributed file system | |
CN111858586A (zh) | 一种数据处理的方法和装置 | |
JP6233846B2 (ja) | 可変長ノンスの生成 | |
CN110945506B (zh) | 支持混合索引的可搜索加密 | |
CN113163027B (zh) | 数据标识的生成方法、装置、设备及存储介质 | |
CN115858590A (zh) | 域名查询请求处理方法、计算机装置、设备、介质和产品 | |
CN112685064B (zh) | 设备标识的处理方法以及装置、存储介质、电子装置 | |
CN113868687A (zh) | 一种任务处理进度的管理方法和装置 | |
CN113285933A (zh) | 用户访问控制方法、装置、电子设备与存储介质 | |
CN111078139A (zh) | 一种实现s3标准对象存储接口的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |