CN110232066A - 一种获取列表数据请求的对象缓存方法及系统 - Google Patents
一种获取列表数据请求的对象缓存方法及系统 Download PDFInfo
- Publication number
- CN110232066A CN110232066A CN201910489959.9A CN201910489959A CN110232066A CN 110232066 A CN110232066 A CN 110232066A CN 201910489959 A CN201910489959 A CN 201910489959A CN 110232066 A CN110232066 A CN 110232066A
- Authority
- CN
- China
- Prior art keywords
- dictionary
- cache
- key assignments
- key
- cache list
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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
-
- 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
本发明提供了计算机领域的一种获取列表数据请求的对象缓存方法,包括如下步骤:步骤S10、服务端接收到获取缓存列表请求时,在内存中创建一字典;步骤S20、在所述字典中存储由主键与对象组成的键值;步骤S30、依据所述键值完成获取缓存列表请求的所有对象后,释放内存中的字典;本发明还提供了一种获取列表数据请求的对象缓存系统。本发明的优点在于:提高了缓存列表的读取效率。
Description
技术领域
本发明涉及计算机领域,特别指一种获取列表数据请求的对象缓存方法及系统。
背景技术
目前,业界在做服务端的架构设计时,为了降低数据库压力,通常会使用缓存。缓存主要用于存放两种数据,一种是对象数据,一种是缓存列表(比如微信朋友圈的动态列表)。
若把整个缓存列表作为对象存放到缓存中,由于缓存列表中的每个对象难以更新,为了便于缓存列表中对象的更新,需设计成在缓存列表中只保存对象的主键。但是也引出一些问题:在取缓存列表的对象时,除了取出主键列表,还需要根据主键去读取对应的对象,这将导致多次与缓存服务器进行交互,影响缓存的效率。
因此,如何提供一种获取列表数据请求的对象缓存方法及系统,实现提高缓存列表的读取效率,成为一个亟待解决的问题。
发明内容
本发明要解决的技术问题之一,在于提供一种获取列表数据请求的对象缓存方法,实现提高缓存列表的读取效率。
本发明是这样实现技术问题之一的:一种获取列表数据请求的对象缓存方法,所述方法包括如下步骤:
步骤S10、服务端接收到获取缓存列表请求时,在内存中创建一字典;
步骤S20、在所述字典中存储由主键与对象组成的键值;
步骤S30、依据所述键值完成获取缓存列表请求的所有对象后,释放内存中的字典。
进一步地,所述步骤S10中,所述缓存列表存储有主键与对象的对应关系。
进一步地,所述步骤S20具体包括:
步骤S21、依据主键从缓存列表中查找主键对应的对象;
步骤S22、判断所述字典中是否存储对应的对象,若是,则进入步骤S23;若否,则进入步骤S24;
步骤S23、通过所述字典的键值读取对应的对象,并进入步骤S30;
步骤S24、从缓存服务器中读取对应的对象,并将读取过的主键与对象组成一键值存储在所述字典中,并进入步骤S30。
进一步地,所述步骤S30具体包括:
步骤S31、判断获取缓存列表请求是否全部完成,若是,则进入步骤S32;若否,则进入步骤S20;
步骤S32、释放内存中的字典。
本发明要解决的技术问题之二,在于提供一种获取列表数据请求的对象缓存系统,实现提高缓存列表的读取效率。
本发明是这样实现技术问题之二的:一种获取列表数据请求的对象缓存系统,所述系统包括如下模块:
字典创建模块、用于服务端接收到获取缓存列表请求时,在内存中创建一字典;
键值存储模块、用于在所述字典中存储由主键与对象组成的键值;
字典释放模块、用于依据所述键值完成获取缓存列表请求的所有对象后,释放内存中的字典。
进一步地,所述字典创建模块中,所述缓存列表存储有主键与对象的对应关系。
进一步地,所述键值存储模块具体包括:
对象查找单元、用于依据主键从缓存列表中查找主键对应的对象;
字典判断单元、用于判断所述字典中是否存储对应的对象,若是,则进入对象读取单元;若否,则进入键值存储单元;
对象读取单元、用于通过所述字典的键值读取对应的对象,并进入字典释放模块;
键值存储单元、用于从缓存服务器中读取对应的对象,并将读取过的主键与对象组成一键值存储在所述字典中,并进入字典释放模块。
进一步地,所述字典释放模块具体包括:
请求判断单元、用于判断获取缓存列表请求是否全部完成,若是,则进入字典释放单元;若否,则进入键值存储模块;
字典释放单元、用于释放内存中的字典。
本发明的优点在于:
(1)通过在内存中创建用于保存使用过的对象的字典,使得使用过的对象能够重复使用,进而降低了相同对象读取的次数,降低了与缓存服务器的交互次数,减轻了缓存服务器的压力,提高了缓存列表的读取效率,降低了获取缓存列表请求的响应时间。当获取缓存列表请求中使用的重复对象越多时,利用所述字典读取对象的次数也越多,即缓存列表的读取效率越高。
(2)通过将读取过的主键与对象组成的键值保存在所述字典中,保证了单次获取缓存列表请求的同一对象的数据一致性。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1是本发明一种获取列表数据请求的对象缓存方法的流程图。
具体实施方式
请参照图1所示,本发明一种获取列表数据请求的对象缓存方法的较佳实施例,包括如下步骤:
步骤S10、服务端接收到获取缓存列表请求时,在内存中创建一字典;
步骤S20、在所述字典中存储由主键与对象组成的键值;
步骤S30、依据所述键值完成获取缓存列表请求的所有对象后,释放内存中的字典。所述字典仅存在于单次获取缓存列表请求的生命周期。
通过在内存中创建用于保存使用过的对象的字典,使得使用过的对象能够重复使用,进而降低了相同对象读取的次数,降低了与缓存服务器的交互次数,减轻了缓存服务器的压力,提高了缓存列表的读取效率,降低了获取缓存列表请求的响应时间。当获取缓存列表请求中使用的重复对象越多时,利用所述字典读取对象的次数也越多,即缓存列表的读取效率越高。
所述步骤S10中,所述缓存列表存储有主键与对象的对应关系。
所述步骤S20具体包括:
步骤S21、依据主键从缓存列表中查找主键对应的对象;
步骤S22、判断所述字典中是否存储对应的对象,若是,则进入步骤S23;若否,则进入步骤S24;
步骤S23、通过所述字典的键值读取对应的对象,并进入步骤S30;
步骤S24、从缓存服务器或者数据库中读取对应的对象,并将读取过的主键与对象组成一键值存储在所述字典中,并进入步骤S30。通过将读取过的主键与对象组成的键值保存在所述字典中,保证了单次获取缓存列表请求的同一对象的数据一致性。
所述步骤S30具体包括:
步骤S31、判断获取缓存列表请求是否全部完成,若是,则进入步骤S32;若否,则进入步骤S20;
步骤S32、释放内存中的字典。
本发明一种获取列表数据请求的对象缓存系统的较佳实施例,包括如下模块:
字典创建模块、用于服务端接收到获取缓存列表请求时,在内存中创建一字典;
键值存储模块、用于在所述字典中存储由主键与对象组成的键值;
字典释放模块、用于依据所述键值完成获取缓存列表请求的所有对象后,释放内存中的字典。所述字典仅存在于单次获取缓存列表请求的生命周期。
通过在内存中创建用于保存使用过的对象的字典,使得使用过的对象能够重复使用,进而降低了相同对象读取的次数,降低了与缓存服务器的交互次数,减轻了缓存服务器的压力,提高了缓存列表的读取效率,降低了获取缓存列表请求的响应时间。当获取缓存列表请求中使用的重复对象越多时,利用所述字典读取对象的次数也越多,即缓存列表的读取效率越高。
所述字典创建模块中,所述缓存列表存储有主键与对象的对应关系。
所述键值存储模块具体包括:
对象查找单元、用于依据主键从缓存列表中查找主键对应的对象;
字典判断单元、用于判断所述字典中是否存储对应的对象,若是,则进入对象读取单元;若否,则进入键值存储单元;
对象读取单元、用于通过所述字典的键值读取对应的对象,并进入字典释放模块;
键值存储单元、用于从缓存服务器或者数据库中读取对应的对象,并将读取过的主键与对象组成一键值存储在所述字典中,并进入字典释放模块。通过将读取过的主键与对象组成的键值保存在所述字典中,保证了单次获取缓存列表请求的同一对象的数据一致性。
所述字典释放模块具体包括:
请求判断单元、用于判断获取缓存列表请求是否全部完成,若是,则进入字典释放单元;若否,则进入键值存储模块;
字典释放单元、用于释放内存中的字典。
综上所述,本发明的优点在于:
(1)通过在内存中创建用于保存使用过的对象的字典,使得使用过的对象能够重复使用,进而降低了相同对象读取的次数,降低了与缓存服务器的交互次数,减轻了缓存服务器的压力,提高了缓存列表的读取效率,降低了获取缓存列表请求的响应时间。当获取缓存列表请求中使用的重复对象越多时,利用所述字典读取对象的次数也越多,即缓存列表的读取效率越高。
(2)通过将读取过的主键与对象组成的键值保存在所述字典中,保证了单次获取缓存列表请求的同一对象的数据一致性。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (8)
1.一种获取列表数据请求的对象缓存方法,其特征在于:所述方法包括如下步骤:
步骤S10、服务端接收到获取缓存列表请求时,在内存中创建一字典;
步骤S20、在所述字典中存储由主键与对象组成的键值;
步骤S30、依据所述键值完成获取缓存列表请求的所有对象后,释放内存中的字典。
2.如权利要求1所述的一种获取列表数据请求的对象缓存方法,其特征在于:所述步骤S10中,所述缓存列表存储有主键与对象的对应关系。
3.如权利要求2所述的一种获取列表数据请求的对象缓存方法,其特征在于:所述步骤S20具体包括:
步骤S21、依据主键从缓存列表中查找主键对应的对象;
步骤S22、判断所述字典中是否存储对应的对象,若是,则进入步骤S23;若否,则进入步骤S24;
步骤S23、通过所述字典的键值读取对应的对象,并进入步骤S30;
步骤S24、从缓存服务器中读取对应的对象,并将读取过的主键与对象组成一键值存储在所述字典中,并进入步骤S30。
4.如权利要求1所述的一种获取列表数据请求的对象缓存方法,其特征在于:所述步骤S30具体包括:
步骤S31、判断获取缓存列表请求是否全部完成,若是,则进入步骤S32;若否,则进入步骤S20;
步骤S32、释放内存中的字典。
5.一种获取列表数据请求的对象缓存系统,其特征在于:所述系统包括如下模块:
字典创建模块、用于服务端接收到获取缓存列表请求时,在内存中创建一字典;
键值存储模块、用于在所述字典中存储由主键与对象组成的键值;
字典释放模块、用于依据所述键值完成获取缓存列表请求的所有对象后,释放内存中的字典。
6.如权利要求5所述的一种获取列表数据请求的对象缓存系统,其特征在于:所述字典创建模块中,所述缓存列表存储有主键与对象的对应关系。
7.如权利要求6所述的一种获取列表数据请求的对象缓存系统,其特征在于:所述键值存储模块具体包括:
对象查找单元、用于依据主键从缓存列表中查找主键对应的对象;
字典判断单元、用于判断所述字典中是否存储对应的对象,若是,则进入对象读取单元;若否,则进入键值存储单元;
对象读取单元、用于通过所述字典的键值读取对应的对象,并进入字典释放模块;
键值存储单元、用于从缓存服务器中读取对应的对象,并将读取过的主键与对象组成一键值存储在所述字典中,并进入字典释放模块。
8.如权利要求5所述的一种获取列表数据请求的对象缓存系统,其特征在于:所述字典释放模块具体包括:
请求判断单元、用于判断获取缓存列表请求是否全部完成,若是,则进入字典释放单元;若否,则进入键值存储模块;
字典释放单元、用于释放内存中的字典。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910489959.9A CN110232066A (zh) | 2019-06-06 | 2019-06-06 | 一种获取列表数据请求的对象缓存方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910489959.9A CN110232066A (zh) | 2019-06-06 | 2019-06-06 | 一种获取列表数据请求的对象缓存方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110232066A true CN110232066A (zh) | 2019-09-13 |
Family
ID=67858459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910489959.9A Pending CN110232066A (zh) | 2019-06-06 | 2019-06-06 | 一种获取列表数据请求的对象缓存方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110232066A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102447778A (zh) * | 2010-10-13 | 2012-05-09 | 腾讯科技(深圳)有限公司 | 一种展示消息的方法及消息展示装置 |
CN102999522A (zh) * | 2011-09-15 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据存储方法和装置 |
CN103139287A (zh) * | 2012-12-11 | 2013-06-05 | 厦门雅迅网络股份有限公司 | 一种基于分布式计算的地图聚合车辆刷新方法 |
US8996563B2 (en) * | 2010-04-06 | 2015-03-31 | Tokutek, Inc. | High-performance streaming dictionary |
CN105404541A (zh) * | 2015-11-12 | 2016-03-16 | 用友网络科技股份有限公司 | 通过弱引用技术消除缓存对象不一致性的装置和方法 |
CN105701215A (zh) * | 2016-01-13 | 2016-06-22 | 北京中交兴路信息科技有限公司 | 基于Hadoop MapReduce的数据连接方法及装置 |
-
2019
- 2019-06-06 CN CN201910489959.9A patent/CN110232066A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8996563B2 (en) * | 2010-04-06 | 2015-03-31 | Tokutek, Inc. | High-performance streaming dictionary |
CN102447778A (zh) * | 2010-10-13 | 2012-05-09 | 腾讯科技(深圳)有限公司 | 一种展示消息的方法及消息展示装置 |
CN102999522A (zh) * | 2011-09-15 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据存储方法和装置 |
CN103139287A (zh) * | 2012-12-11 | 2013-06-05 | 厦门雅迅网络股份有限公司 | 一种基于分布式计算的地图聚合车辆刷新方法 |
CN105404541A (zh) * | 2015-11-12 | 2016-03-16 | 用友网络科技股份有限公司 | 通过弱引用技术消除缓存对象不一致性的装置和方法 |
CN105701215A (zh) * | 2016-01-13 | 2016-06-22 | 北京中交兴路信息科技有限公司 | 基于Hadoop MapReduce的数据连接方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107247808B (zh) | 一种分布式NewSQL数据库系统及图片数据查询方法 | |
CN104252536B (zh) | 一种基于hbase的上网日志数据查询方法及装置 | |
CN110321344B (zh) | 关联数据的信息查询方法、装置、计算机设备及存储介质 | |
CN102521406B (zh) | 海量结构化数据复杂查询任务的分布式查询方法和系统 | |
CN103365929B (zh) | 一种数据库连接的管理方法及系统 | |
CN102521405B (zh) | 支持高速加载的海量结构化数据存储、查询方法和系统 | |
CN103577440A (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
CN104102710A (zh) | 一种海量数据查询方法 | |
CN107491487A (zh) | 一种全文数据库架构及位图索引创建、数据查询方法、服务器及介质 | |
CN103440288A (zh) | 一种大数据存储方法及装置 | |
Holzschuher et al. | Querying a graph database–language selection and performance considerations | |
CN105718455A (zh) | 一种数据查询方法及装置 | |
CN104516979A (zh) | 一种基于二次检索的数据查询方法及系统 | |
CN104809179A (zh) | 访问哈希表的装置和方法 | |
CN100458784C (zh) | 在数字图书馆中所采用的检索系统和检索方法 | |
CN102999522A (zh) | 一种数据存储方法和装置 | |
CN105320654A (zh) | 动态布隆过滤器和基于动态布隆过滤器的元素操作方法 | |
CN103455335A (zh) | 一种多级分类的Web实现方法 | |
CN103914483A (zh) | 文件存储方法、装置及文件读取方法、装置 | |
CN104598161B (zh) | 数据读取、写入方法和装置及数据存储结构 | |
CN107729504A (zh) | 一种处理大数据对象的方法及系统 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN102521304A (zh) | 基于哈希的聚簇表存储方法 | |
CN105373621A (zh) | 一种快速的跨数据库系统的数据增量迁移方法 | |
CN105138649A (zh) | 数据的搜索方法、装置及终端 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190913 |
|
RJ01 | Rejection of invention patent application after publication |