CN112487029B - 渐进式缓存淘汰方法、装置、电子设备和存储介质 - Google Patents
渐进式缓存淘汰方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112487029B CN112487029B CN202011254959.XA CN202011254959A CN112487029B CN 112487029 B CN112487029 B CN 112487029B CN 202011254959 A CN202011254959 A CN 202011254959A CN 112487029 B CN112487029 B CN 112487029B
- Authority
- CN
- China
- Prior art keywords
- cache
- data
- player
- linked list
- progressive
- 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
Images
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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/77—Game security or game management aspects involving data related to game devices or game servers, e.g. configuration data, software version or amount of memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/79—Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例涉及渐进式缓存淘汰方法、装置、电子设备和存储介质,属于游戏开发技术领域,所述方法包括:从数据库预加载活跃玩家的数据进入缓存,所述缓存通过缓存链表来存储;若玩家上线,在缓存链表中查询该玩家的数据,如果查询不到,则从数据库中加载该玩家的数据;若玩家下线,将该玩家的数据存入缓存链表;当缓存达到预设的淘汰条件时,根据预设的渐进式缓存淘汰策略,从缓存链表的尾部淘汰数据。通过预加载缓存,可以高效应对玩家登陆的高并发,起到削峰的作用。并且,渐进式缓存淘汰策略提高了服务器空闲时间的CPU利用率。
Description
技术领域
本申请涉及游戏开发技术领域,特别是涉及渐进式缓存淘汰方法、装置、电子设备和存储介质。
背景技术
网络游戏开发过程中,往往需要对玩家数据进行持久化,落地到数据库,从而在玩家上线的时候,从数据库加载玩家数据以继续游戏。由于磁盘IO(Input和Output,即输入和输出)耗时比较严重,所以一般通过缓存预先将玩家数据加载到内存中,玩家上线后只需要读取内存中的数据而不需要直接和数据库进行交互,减少了磁盘IO的开销。但是,内存的容量是有限的,往往比持久化的数据量小得多,所以缓存的量也不可能无限扩大。
目前针对相关技术中,当玩家数量超过缓存上限时,如何对缓存数据进行淘汰,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种渐进式缓存淘汰方法、装置、电子设备和存储介质,以至少解决相关技术中,当玩家数量超过缓存上限时,如何对缓存数据进行淘汰的问题。
第一方面,本申请实施例提供了一种渐进式缓存淘汰方法,包括:从数据库预加载活跃玩家的数据进入缓存,所述缓存通过缓存链表来存储;若玩家上线,在所述缓存链表中查询该玩家的数据,如果查询不到,则从所述数据库中加载该玩家的数据;若玩家下线,将该玩家的数据存入所述缓存链表;当所述缓存达到预设的淘汰条件时,根据预设的渐进式缓存淘汰策略,从所述缓存链表的尾部淘汰数据。
在其中一些实施例中,在所述的从数据库预加载活跃玩家的数据进入缓存之前,所述方法包括:根据数据库中的历史数据,计算玩家的历史累计在线时间;若所述历史累计在线时间超过预设阈值,则判定为活跃玩家。
在其中一些实施例中,所述的将该玩家的数据存入所述缓存链表包括:将该玩家的数据存入所述缓存链表的头部。
在其中一些实施例中,所述的从所述缓存链表的尾部淘汰数据包括:将淘汰的数据存储到所述数据库,删除所述淘汰的数据对应的内存,并去掉所述缓存链表尾部的所述淘汰的数据对应的链表结点。
在其中一些实施例中,所述渐进式缓存淘汰方法还包括:当所述缓存超过所述缓存链表长度时,将超过部分的数据从所述缓存链表的尾部淘汰。
在其中一些实施例中,所述渐进式缓存淘汰策略包括:每秒统计所述缓存增加的数目X,并统计当前缓存的总数;当所述缓存的总数达到所述缓存链表长度的7/8时,则在当前一秒淘汰Min{X,C}个缓存,其中C是经验值,并通过训练得出。
在其中一些实施例中,所述训练的步骤包括:当所述缓存的总数达到所述缓存链表长度的6/8时,开始尝试淘汰数据,其中,淘汰个数从1开始递增,并分别记录耗费的时间以及平均时间;当所述耗费的时间达到预设的时长时,所述淘汰个数达到S个,则C=S/2。
第二方面,本申请实施例提供了一种渐进式缓存淘汰装置,包括预加载模块、查询模块、存入模块和淘汰模块,其中,预加载模块用于从数据库预加载活跃玩家的数据进入缓存,所述缓存通过缓存链表来存储;查询模块用于若玩家上线,在所述缓存链表中查询该玩家的数据,如果查询不到,则从所述数据库中加载该玩家的数据;存入模块用于若玩家下线,将该玩家的数据存入所述缓存链表;淘汰模块用于当所述缓存达到预设的淘汰条件时,根据预设的渐进式缓存淘汰策略,从所述缓存链表的尾部淘汰数据。
第三方面,本申请实施例提供了一种电子设备,包括处理器和存储有计算机程序的存储介质,所述计算机程序被所述处理器执行时实现如上述任一项所述的渐进式缓存淘汰方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述的渐进式缓存淘汰方法。
根据上述内容,本申请实施例的渐进式缓存淘汰方法包括:从数据库预加载活跃玩家的数据进入缓存,所述缓存通过缓存链表来存储;若玩家上线,在缓存链表中查询该玩家的数据,如果查询不到,则从数据库中加载该玩家的数据;若玩家下线,将该玩家的数据存入缓存链表;当缓存达到预设的淘汰条件时,根据预设的渐进式缓存淘汰策略,从缓存链表的尾部淘汰数据。通过预加载缓存,可以高效应对玩家登陆的高并发,起到削峰的作用。并且,渐进式缓存淘汰策略提高了服务器空闲时间的CPU利用率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的渐进式缓存淘汰方法的流程图;
图2是根据本申请实施例的缓存链表的表达示意图;
图3是根据本申请实施例的渐进式缓存淘汰装置的结构框图;
图4是根据本申请实施例的电子设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
在网络游戏服务环境中,玩家登陆的数量会有峰谷时期。当玩家登陆的数量超过缓存上限时,需要对缓存的数据进行淘汰。本申请实施例提供了一种渐进式缓存淘汰方法,图1是根据本申请实施例的渐进式缓存淘汰方法的流程图,如图1所示,包括以下步骤:
S100:从数据库预加载活跃玩家的数据进入缓存,该缓存通过缓存链表来存储;
S200:若玩家上线,在缓存链表中查询该玩家的数据,如果查询不到,则从数据库中加载该玩家的数据;
S300:若玩家下线,将该玩家的数据存入缓存链表;
S400:当缓存达到预设的淘汰条件时,根据预设的渐进式缓存淘汰策略,从缓存链表的尾部淘汰数据。
根据上述内容,本申请实施例中预加载活跃玩家的数据进入缓存,由于活跃玩家比普通玩家上线的概率更大,那么活跃玩家可以直接从缓存中查询数据,因此能够更好的应对高并发情况,从而起到削峰的作用。而且,渐进式缓存淘汰策略提高了服务器空闲时间的CPU利用率。
作为一个示例,用缓存链表来存储玩家的缓存数据,其中,设定最大允许缓存的数量为M,即链表的最大长度为M。当服务器开启后,采用预加载缓存策略,即,从数据库预加载活跃玩家的数据进入缓存,此处选取的数量例如为M/4。优选的,将预加载完毕的缓存数据添加到缓存链表的头部。
可选的,在从数据库预加载活跃玩家的数据进入缓存之前,本申请实施例的渐进式缓存淘汰方法还包括:根据数据库中的历史数据,计算玩家的历史累计在线时间;若历史累计在线时间超过预设阈值,则判定为活跃玩家。即,判定活跃玩家的依据是玩家在数据库中的历史累计在线时间,时间越长则表示该玩家越活跃。
基于上述内容,当玩家上线的时候,在缓存链表中查询该玩家的数据,如果查询到,则使用查询的缓存数据;如果查询不到,则从数据库加载该玩家的数据。
图2是根据本申请实施例的缓存链表的表达示意图,如图2所示,当玩家下线的时候,将该玩家的数据存入缓存链表,优选存到缓存链表的头部,后面存入的缓存数据在缓存链表中依次向后排列。此时,若缓存的总量超过链表的最大长度M,则采取即时缓存淘汰策略,即,将超过的数据从链表的尾部进行淘汰。
可选的,从缓存链表的尾部淘汰数据包括:将淘汰的数据存储到数据库,删除淘汰的数据对应的内存,并去掉缓存链表尾部的淘汰的数据对应的链表结点。
可见,在上述缓存数据淘汰的过程中,会进行数据库的存盘操作,这一步是非常耗时的。因此,如何进行缓存数据的淘汰,成为本申请实施例的关键问题之一。
以下对本申请实施例中的渐进式缓存淘汰策略进行说明。在缓存数量没有达到上限M的时候,例如在缓存数量达到7*M/8的时候,即接近缓存上限时进行一部分缓存数据的淘汰,并且从缓存链表的尾部进行淘汰。例如,淘汰数据的个数按照公式来进行。具体的,每秒统计缓存增加的数目X,并且统计当前缓存的总数,当缓存的总数达到7*M/8时,则在当前一秒淘汰Min{X,C}个缓存,其中C是一个经验值,可以通过训练得出。
可选的,训练的方法如下,例如,当缓存的总数达到6*M/8时,开始尝试淘汰数据,其中,淘汰个数从1开始递增,即开始尝试淘汰1、2、3、4...个缓存数据,并且分别记录耗费的时间以及平均时间。当耗费的时间达到预设的时长时,耗费的时间比较久,比如达到1秒的时候,达到服务器能够承受的最大范围,此时尝试淘汰到某个阈值,比如S个,则取C=S/2;
因此,本申请实施例中,经验值C的训练可以更加合理的选取淘汰的数量,更加有利于服务器在运行时预估压力。
本申请实施例还提供一种渐进式缓存淘汰装置,图3是根据本申请实施例的渐进式缓存淘汰装置的结构框图,如图3所示,该装置包括预加载模块1、查询模块2、存入模块3和淘汰模块4,其中,预加载模块1用于从数据库预加载活跃玩家的数据进入缓存,该缓存通过缓存链表来存储;查询模块2用于若玩家上线,在缓存链表中查询该玩家的数据,如果查询不到,则从数据库中加载该玩家的数据;存入模块3用于若玩家下线,将该玩家的数据存入缓存链表;淘汰模块4用于当缓存达到预设的淘汰条件时,根据预设的渐进式缓存淘汰策略,从缓存链表的尾部淘汰数据。
综上,本申请实施例的渐进式缓存淘汰方法具有以下优势:
(1)预加载缓存策略可以加快开启服务器那段时间的玩家登陆并发速度,起到削峰的作用;
(2)历史累计在线时间的统计,使得活跃玩家的数据能够率先存入缓存中;
(3)渐进式缓存淘汰策略提高了服务器空闲时间的CPU利用率;
(4)经验值C的训练可以更加合理的选取淘汰的数量,更加有利于服务器在运行时预估压力。
本申请实施例还提供一种电子设备,图4是根据本申请实施例的电子设备的结构框图,如图4所示,该电子设备可以包括处理器81以及存储有计算机程序指令的存储器82。
具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。
处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意一种渐进式缓存淘汰方法。
在其中一些实施例中,电子设备还可包括通信接口83和总线80。其中,如图4所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线80包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(ControlBus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(FrontSide Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、***组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的渐进式缓存淘汰方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种渐进式缓存淘汰方法。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种渐进式缓存淘汰方法,其特征在于,包括:
从数据库预加载活跃玩家的数据进入缓存,所述缓存通过缓存链表来存储;
若玩家上线,在所述缓存链表中查询该玩家的数据,如果查询不到,则从所述数据库中加载该玩家的数据;
若玩家下线,将该玩家的数据存入所述缓存链表;
当所述缓存达到预设的淘汰条件时,根据预设的渐进式缓存淘汰策略,从所述缓存链表的尾部淘汰数据;
所述渐进式缓存淘汰策略包括:
每秒统计所述缓存增加的数目X,并统计当前缓存的总数;
当所述缓存的总数达到所述缓存链表长度的7/8时,则在当前一秒淘汰Min{X,C}个缓存,其中C是经验值,并通过训练得出;
所述训练的步骤包括:
当所述缓存的总数达到所述缓存链表长度的6/8时,开始尝试淘汰数据,其中,淘汰个数从1开始递增,并分别记录耗费的时间以及平均时间;
当所述耗费的时间达到预设的时长时,所述淘汰个数达到S个,则C=S/2。
2.根据权利要求1所述的渐进式缓存淘汰方法,其特征在于,在所述的从数据库预加载活跃玩家的数据进入缓存之前,所述方法包括:
根据数据库中的历史数据,计算玩家的历史累计在线时间;
若所述历史累计在线时间超过预设阈值,则判定为活跃玩家。
3.根据权利要求1所述的渐进式缓存淘汰方法,其特征在于,所述的将该玩家的数据存入所述缓存链表包括:
将该玩家的数据存入所述缓存链表的头部。
4.根据权利要求1所述的渐进式缓存淘汰方法,其特征在于,所述的从所述缓存链表的尾部淘汰数据包括:
将淘汰的数据存储到所述数据库,删除所述淘汰的数据对应的内存,并去掉所述缓存链表尾部的所述淘汰的数据对应的链表结点。
5.根据权利要求1所述的渐进式缓存淘汰方法,其特征在于,所述方法还包括:
当所述缓存超过所述缓存链表长度时,将超过的数据从所述缓存链表的尾部淘汰。
6.一种渐进式缓存淘汰装置,其特征在于,包括:
预加载模块,用于从数据库预加载活跃玩家的数据进入缓存,所述缓存通过缓存链表来存储;
查询模块,用于若玩家上线,在所述缓存链表中查询该玩家的数据,如果查询不到,则从所述数据库中加载该玩家的数据;
存入模块,用于若玩家下线,将该玩家的数据存入所述缓存链表;
淘汰模块,用于当所述缓存达到预设的淘汰条件时,根据预设的渐进式缓存淘汰策略,从所述缓存链表的尾部淘汰数据;
所述渐进式缓存淘汰策略包括:
每秒统计所述缓存增加的数目X,并统计当前缓存的总数;
当所述缓存的总数达到所述缓存链表长度的7/8时,则在当前一秒淘汰Min{X,C}个缓存,其中C是经验值,并通过训练得出;
所述训练的步骤包括:
当所述缓存的总数达到所述缓存链表长度的6/8时,开始尝试淘汰数据,其中,淘汰个数从1开始递增,并分别记录耗费的时间以及平均时间;
当所述耗费的时间达到预设的时长时,所述淘汰个数达到S个,则C=S/2。
7.一种电子设备,包括处理器和存储有计算机程序的存储介质,其特征在于,所述计算机程序被所述处理器执行时实现如权利要求1至5中任一项所述的渐进式缓存淘汰方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的渐进式缓存淘汰方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011254959.XA CN112487029B (zh) | 2020-11-11 | 2020-11-11 | 渐进式缓存淘汰方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011254959.XA CN112487029B (zh) | 2020-11-11 | 2020-11-11 | 渐进式缓存淘汰方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112487029A CN112487029A (zh) | 2021-03-12 |
CN112487029B true CN112487029B (zh) | 2022-09-16 |
Family
ID=74929591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011254959.XA Active CN112487029B (zh) | 2020-11-11 | 2020-11-11 | 渐进式缓存淘汰方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112487029B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114328548B (zh) * | 2021-12-10 | 2023-11-07 | 苏州浪潮智能科技有限公司 | 双存储池数据淘汰速度控制方法、***、终端及存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102663096B (zh) * | 2012-04-11 | 2015-12-16 | 北京像素软件科技股份有限公司 | 一种基于数据缓存技术读取数据的方法 |
US9460025B1 (en) * | 2014-06-12 | 2016-10-04 | Emc Corporation | Maintaining a separate LRU linked list for each thread for multi-threaded access |
CN107463509B (zh) * | 2016-06-05 | 2020-12-15 | 华为技术有限公司 | 缓存管理方法、缓存控制器以及计算机*** |
CN108733584B (zh) * | 2017-04-17 | 2022-07-19 | 伊姆西Ip控股有限责任公司 | 用于优化数据缓存的方法和设备 |
CN107180118A (zh) * | 2017-07-04 | 2017-09-19 | 郑州云海信息技术有限公司 | 一种文件***缓存数据管理方法及装置 |
CN110275870A (zh) * | 2019-05-22 | 2019-09-24 | 深圳壹账通智能科技有限公司 | 缓存文件的管理方法、装置、计算机设备及存储介质 |
CN111176560B (zh) * | 2019-12-17 | 2022-02-18 | 腾讯科技(深圳)有限公司 | 一种缓存管理方法、装置、计算机设备及存储介质 |
CN111625550A (zh) * | 2020-05-15 | 2020-09-04 | 贵州易鲸捷信息技术有限公司 | 基于EsgynDB数据库的预编译语句缓存***及方法 |
CN111708720A (zh) * | 2020-08-20 | 2020-09-25 | 北京思明启创科技有限公司 | 一种数据缓存方法、装置、设备及介质 |
-
2020
- 2020-11-11 CN CN202011254959.XA patent/CN112487029B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112487029A (zh) | 2021-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107526546B (zh) | 一种Spark分布式计算数据处理方法及*** | |
WO2022057391A1 (zh) | 缓存内存调整方法、装置及计算机设备 | |
US20150127691A1 (en) | Efficient implementations for mapreduce systems | |
CN105677580A (zh) | 访问缓存的方法和装置 | |
WO2023050712A1 (zh) | 一种深度学习业务的任务调度方法及相关装置 | |
CN107544926B (zh) | 处理***及其访存方法 | |
CN111258967A (zh) | 文件***中数据读取方法、装置及计算机可读存储介质 | |
CN111723058B (zh) | 一种预读数据缓存方法、装置、设备及存储介质 | |
CN112487029B (zh) | 渐进式缓存淘汰方法、装置、电子设备和存储介质 | |
CN104156323A (zh) | 一种高速缓冲存储器的数据块长度自适应读取方法及装置 | |
CN113326170B (zh) | 任务延迟风险检测方法、电子设备及存储介质 | |
CN101341471B (zh) | 动态高速缓存管理的设备和方法 | |
CN112528125A (zh) | 避免内容重复推荐的方法、装置、电子设备及存储介质 | |
CN113791989B (zh) | 基于cache的缓存数据处理方法、存储介质及芯片 | |
CN107590023B (zh) | 数据处理方法、电子设备及计算机可读存储介质 | |
CN107589907B (zh) | 数据处理方法、电子设备及计算机可读存储介质 | |
KR102334473B1 (ko) | 적응형 딥러닝 가속 장치 및 방법 | |
CN210804421U (zh) | 一种服务器*** | |
CN106802774A (zh) | 写请求处理方法和装置、读请求处理方法和装置 | |
CN104123243A (zh) | 数据缓存***及方法 | |
CN111124955B (zh) | 一种高速缓存控制方法及设备和计算机存储介质 | |
CN109992198B (zh) | 神经网络的数据传输方法及相关产品 | |
CN112995186A (zh) | 适用于mqtt服务安全保障的改善方法及*** | |
CN107273188B (zh) | 一种虚拟机中央处理单元cpu绑定方法及装置 | |
CN117851291B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |