CN113468195B - 服务器数据缓存更新方法、系统和主数据库服务器 - Google Patents

服务器数据缓存更新方法、系统和主数据库服务器 Download PDF

Info

Publication number
CN113468195B
CN113468195B CN202110800824.7A CN202110800824A CN113468195B CN 113468195 B CN113468195 B CN 113468195B CN 202110800824 A CN202110800824 A CN 202110800824A CN 113468195 B CN113468195 B CN 113468195B
Authority
CN
China
Prior art keywords
cache
server
data packet
database server
instruction
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
Application number
CN202110800824.7A
Other languages
English (en)
Other versions
CN113468195A (zh
Inventor
徐律冠
罗欢
刘叶楠
余芸
姜唯
陈文平
彭钦青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Southern Power Grid Digital Platform Technology Guangdong Co ltd
Original Assignee
China Southern Power Grid Digital Platform Technology Guangdong Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Southern Power Grid Digital Platform Technology Guangdong Co ltd filed Critical China Southern Power Grid Digital Platform Technology Guangdong Co ltd
Priority to CN202110800824.7A priority Critical patent/CN113468195B/zh
Publication of CN113468195A publication Critical patent/CN113468195A/zh
Application granted granted Critical
Publication of CN113468195B publication Critical patent/CN113468195B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及一种服务器数据缓存更新方法、系统和主数据库服务器和存储介质。该方法包括:获取各应用程序服务器当前分别发送的缓存更新指令;当缓存更新指令已被处理过时,将缓存更新指令发送给备数据服务器,由备数据服务器根据缓存更新指令向对应的应用程序服务器发送缓存数据包;缓存数据包是缓存更新指令首次被处理时,主数据库服务器同步至备数据服务器的;缓存数据包,用于使各应用程序服务器根据缓存数据包进行数据缓存更新。采用本方法能够提高主数据库服务器稳定性。

Description

服务器数据缓存更新方法、系统和主数据库服务器
技术领域
本申请涉及数据缓存更新技术领域,特别是涉及一种服务器数据缓存更新方法、系统和主数据库服务器。
背景技术
随着数据缓存更新技术的发展,为了使服务器能具有更大的缓存量,以及更高的处理速率,因而出现了服务器数据缓存更新技术。
传统技术中,服务器集群中多个服务器本地缓存的更新依赖每个服务器本地缓存的更新,即,由服务器集群中每个应用程序服务器根据其缓存过期之后接收到的更新请求来实现本地缓存的数据更新。各个相同参数的更新请求,同时落在服务器集群内部的不同服务器时,各应用程序服务器均会通过访问主数据库服务器来更新本地缓存数据。
然而,目前的传统方法,当相同参数的更新请求数量较大时,会对主数据库服务器造成很大压力,容易导致主数据库服务器不稳定。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高主数据库服务器稳定性的服务器数据缓存更新方法、系统和主数据库服务器和存储介质。
一种服务器数据缓存更新方法,所述方法包括:
获取各应用程序服务器当前分别发送的缓存更新指令;
当所述缓存更新指令已被处理过时,将所述缓存更新指令发送给备数据服务器,由所述备数据服务器根据所述缓存更新指令向对应的应用程序服务器发送缓存数据包;所述缓存数据包是缓存更新指令首次被处理时,主数据库服务器同步至所述备数据服务器的;所述缓存数据包,用于使各应用程序服务器根据所述缓存数据包进行数据缓存更新。
在其中一个实施例中,当所述缓存更新指令未被处理过时,根据所述缓存更新指令将所述缓存数据包发送给对应的应用程序服务器。
在其中一个实施例中,在根据所述缓存更新指令将所述缓存数据包发送给对应的应用程序服务器之后,所述方法还包括:将所述缓存更新指令作为历史指令,与所述缓存数据包同时发送至所述备数据库服务器进行存储。
在其中一个实施例中,校验所述缓存更新指令是否已被处理过,包括:
校验当前获取的所述缓存更新指令和所述历史指令是否相同;
若当前获取的所述缓存更新指令和所述历史指令相同,则确定所述缓存更新指令已被处理过;
执行将所述缓存更新指令发送给备数据服务器的步骤。
在其中一个实施例中,根据所述缓存更新指令将所述缓存数据包发送给对应的应用程序服务器,包括:
根据所述缓存更新指令确定缓存数据包,所述缓存数据包至少包括一个独立缓存包;
对所述缓存数据包进行分割,得到各所述独立缓存包,所述独立缓存包为应用程序服务器进行数据缓存更新的最小单位的缓存数据包;
确定至少一个所述独立缓存包并将其发送给对应的应用程序服务器。
一种主数据库服务器,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取各应用程序服务器当前分别发送的缓存更新指令;
当所述缓存更新指令已被处理过时,将所述缓存更新指令发送给备数据服务器,由所述备数据服务器根据所述缓存更新指令向对应的应用程序服务器发送缓存数据包;所述缓存数据包是缓存更新指令首次被处理时,主数据库服务器同步至所述备数据服务器的;所述缓存数据包,用于使各应用程序服务器根据所述缓存数据包进行数据缓存更新。
一种服务器数据缓存更新系统,所述系统包括:应用程序服务器、备数据库服务器和主数据库服务器;所述应用程序服务器,当需要进行数据缓存更新时,向所述主数据库服务器发送缓存更新指令;
所述主数据库服务器,获取应用程序服务器发送的缓存更新指令;当所述缓存更新指令已被处理过时,将所述缓存更新指令发送给备数据服务器,由所述备数据服务器根据所述缓存更新指令向对应的应用程序服务器发送缓存数据包,所述缓存数据包是缓存更新指令首次被处理时,主数据库服务器同步至所述备数据服务器的;所述缓存数据包,用于使各应用程序服务器根据所述缓存数据包进行数据缓存更新;
所述备数据库服务器,接收并响应所述缓存更新指令向对应的应用程序服务器发送缓存数据包。
在一个实施例中,所述应用程序服务器,还用于对所述备数据库服务器发送的所述缓存数据包进行寄存,校验是否需要所述缓存数据包,当需要所述缓存数据包时,根据所述缓存数据包进行数据缓存更新。
在一个实施例中,所述应用程序服务器,当不需要所述缓存数据包时,清理寄存的所述缓存数据包。
在一个实施例中,所述备数据库服务器,还用于同时获取所述主数据库服务器的缓存数据包和所述缓存更新指令,并将所述缓存更新指令作为历史指令进行存储。
上述服务器数据缓存更新方法、系统和主数据库服务器和存储介质,主数据库服务器获取各应用程序服务器当前分别发送的缓存更新指令,当确定该缓存更新指令已被处理过时,将该缓存更新指令发送给备数据库服务器,通过备数据库服务器根据缓存更新指令,向各个应用程序服务器发送其需要的缓存数据包进行数据缓存更新。即,只要该缓存更新指令不是首次获得,备数据库服务器均可为主数据库服务器代劳,由备数据库服务器根据该缓存更新指令向各应用程序服务器进行缓存数据包的发送,而不需要各个应用程序服务器同时访问主数据库服务器,因此本申请在一定程度上减轻了主数据库服务器的处理压力,进而可以有效提高主数据库服务器稳定性。
附图说明
图1为一个实施例中服务器数据缓存更新方法的系统架构图;
图2为一个实施例中服务器数据缓存更新方法的流程示意图;
图3为另一个实施例中服务器数据缓存更新方法的流程示意图;
图4为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的服务器数据缓存更新方法,可以应用于如图1所示的系统架构中。在一个服务器集群中,应用程序服务器102需要进行更新本地缓存时,会向主数据库服务器104发送缓存更新指令,主数据库服务器104接收各个缓存更新指令,当确定其中某个缓存更新指令是之前已被主数据库服务器104处理过的指令,则将该缓存更新指令发送给备数据库服务器106,由备数据库服务器106对该缓存更新指令进行处理,结合该缓存更新指令将缓存数据包发送给相应的应用程序服务器102。应用程序服务器102再根据接收的缓存数据包在本地进行数据缓存更新。
在一个实施例中,如图2所示,提供了一种服务器数据缓存更新方法,以该方法应用于图1中的系统架构为例进行说明,包括以下步骤:
步骤S202,获取各应用程序服务器当前分别发送的缓存更新指令。
其中,各应用程序服务器是指在一个服务集群中的多个应用程序服务器。在一个服务集群中包括一个主数据库服务器和多个应用程序服务器,当各应用程序服务器需要更新本地缓存时,各应用程序服务器均会向主数据库服务器发送一个缓存更新指令,主数据库服务器根据接收的缓存更新指令,可以将自身存储的缓存数据包给各应用程序服务器进行数据缓存更新。缓存更新指令是基于websocket协议的request指令,也可以是基于http协议的request指令,还可以是基于其他持久或非持久的握手协议的request指令。
步骤S204,当所述缓存更新指令已被处理过时,将所述缓存更新指令发送给备数据服务器,由所述备数据服务器根据所述缓存更新指令向对应的应用程序服务器发送缓存数据包。
其中,缓存数据包是缓存更新指令首次被处理时,主数据库服务器同步至备数据服务器的。缓存数据包,用于使各应用程序服务器根据缓存数据包进行数据缓存更新。
大量缓存数据包存储于主数据库服务器中,不同应用程序服务器其需要的缓存数据包在内容上是不同的。通常在服务器集群中选择性能最好、网络最畅通的一台作为主数据库服务器,在服务器集群中选择其中一个性能较好的应用程序服务器作为备数据库服务器,备数据库服务器主要用于响应主数据库服务器之前已经处理过的缓存更新指令,将缓存数据包发送给对应的应用程序服务器。
对于不同的应用程序服务器,其发送的缓存更新指令在内容上惟一的区别仅在于:携带了该应用程序服务器的设备信息,该设备信息可以用于区分各缓存更新指令分别来自于哪一个应用程序服务器。对于同一个应用程序服务器,其发送的缓存更新指令在指令携带内容上不会发生变化,因此主数据库服务器再次接收同一个缓存更新指令时,该缓存更新指令不会因为发送次数而在内容上发生变化。在一个实施例中,为了判断该缓存更新指令是否之前被处理过,主数据库服务器将该缓存更新指令和备数据库服务器中存储的历史指令进行比较,从而可以识别出缓存更新指令是否之前被处理过。在另一个实施例中,为了判断该缓存更新指令是否之前被处理过,主数据库服务器根据查询自身接收缓存更新指令的历史记录,即可确定当前接收的缓存更新指令是否之前已被处理过。
具体地,当主数据库服务器识别出缓存更新指令已被处理过时,主数据库服务器将缓存更新指令发送给备数据库服务器,备数据库服务器接收该并解析该缓存更新指令,确定发送该缓存更新指令的应用程序服务器,再将主数据库服务器之前同步到备数据库服务器的缓存数据包发送给对应的应用程序服务器。
其中,在一个实施例中,获取的各缓存更新指令包括已被处理过的和未被处理过的。具体地,缓存更新指令未被处理过,即对于主数据服务器而言,该缓存更新指令为其首次处理,首次处理意味着该缓存更新指令和对应的缓存数据包,未同步给备数据库服务器,此时备数据库服务器无法代替主数据库服务器,向响应的应用程序服务器发送缓存数据包。因此,缓存更新指令未被处理过时,由主数据库服务器进行处理,解析接收的该缓存更新指令,确定对应的应用程序服务器,再将对应的缓存数据包发送给该应用程序服务器。对于其他接收的、被识别为已被处理过的缓存更新指令,则由于备数据库服务器同步存储有对应的缓存数据包,因而这部分缓存更新指令依旧由备数据库服务器进行处理,向对应的应用程序服务器发送对应的缓存数据包。在一个实施例中,获取的各缓存更新指令全部为已被处理过的。具体地,缓存更新指令已被处理过,意味着,之前主数据库服务器接收的该缓存更新指令和对应的缓存数据包已被同步至备数据库服务器。主数据库服务器将缓存更新指令发送给备数据库服务器,由备数据库服务器将同步获得的对应的缓存数据包发送给应用程序服务器。
上述服务器数据缓存更新方法中,主数据库服务器获取各应用程序服务器当前分别发送的缓存更新指令,当确定该缓存更新指令已被处理过时,将该缓存更新指令发送给备数据库服务器,通过备数据库服务器根据缓存更新指令,向各个应用程序服务器发送其需要的缓存数据包进行数据缓存更新。即,只要该缓存更新指令不是首次获得,备数据库服务器均可为主数据库服务器代劳,由备数据库服务器根据该缓存更新指令向对应的应用程序服务器进行缓存数据包的发送,而不需要各个应用程序服务器同时访问主数据库服务器,因此本申请在一定程度上减轻了主数据库服务器的处理压力,进而可以有效提高主数据库服务器稳定性。
在另一个实施例中,服务器数据缓存更新方法还包括:当所述缓存更新指令未被处理过时,根据所述缓存更新指令将所述缓存数据包发送给对应的应用程序服务器。
其中,缓存更新指令全部未被处理过,可能是各应用程序服务器首次向该主数据库服务器请求更新本地缓存。对于此时的备数据库服务器,并未存储有任何相关的缓存更新指令或缓存数据包,因而全部由主数据库服务器处理。
本实施例中,当缓存更新指令之前未被处理过时,根据缓存更新指令将缓存数据包发送给对应的应用程序服务器,从而每次均由主数据库服务器对之前未被处理过的缓存更新指令进行处理。
在一个实施例中,服务器数据缓存更新方法,还包括:将所述缓存更新指令作为历史指令,与所述缓存数据包同时发送至所述备数据库服务器进行存储。
其中,主数据库在每次接收缓存更新指令时,如果确认该缓存更新指令是首次处理,则将接收到的缓存更新指令和对应的缓存数据包同步发送给备数据库服务器,由备数据库服务器备份。备数据服务器存储的这些缓存更新指令和缓存数据包,对于主数据库服务器当前接收的缓存更新指令而言,是一种过去时的缓存更新指令,因此称为历史指令。这样在主数据库确认收到的缓存更新指令已被处理过时,即可由备数据库服务器根据缓存更新指令向对应的应用程序服务器发送缓存数据包。从而使主数据库服务器只要对历史上未被处理过的缓存更新指令进行处理即可。
本实施例中,通过主数据库服务器每次将缓存更新指令和缓存数据包同步给备数据库服务器,从而在主数据库服务器不是首次处理该缓存更新指令时,能够由备数据库服务器根据该缓存更新指令向对应的应用程序服务器发送缓存数据包,从而减轻主数据库服务器的处理压力。
在一个实施例中,服务器数据缓存更新方法,还包括:
校验当前获取的所述缓存更新指令和所述历史指令是否相同;若当前获取的所述缓存更新指令和所述历史指令相同,则确定所述缓存更新指令已被处理过;执行将所述缓存更新指令发送给备数据服务器的步骤。
其中,当前获取的缓存更新指令是指主数据库服务器当前接收的缓存更新指令,历史指令是备数据库服务器通过主数据库服务器同步得到的过去时的缓存更新指令。在一个实施例中,校验当前获取的缓存更新指令和历史指令是否相同的步骤,在主数据库服务器将缓存更新指令发送给备数据库服务器、和根据缓存更新指令将缓存数据包发送给对应的应用程序服务器之前执行。
具体地,如果当前获取的缓存更新指令和历史指令相同,则主数据库服务器可以确定该缓存更新指令已被处理过。如果当前获取的缓存更新指令和历史指令不相同,则主数据库服务器可以确定该缓存更新指令未被处理过。
在本实施例中,通过校验当前获取的缓存更新指令是否和历史指令相同,从而可以确定该缓存更新指令是否已被处理过。
在一个实施例中,根据所述缓存更新指令将所述缓存数据包发送给对应的应用程序服务器,包括:根据所述缓存更新指令确定缓存数据包,所述缓存数据包至少包括一个独立缓存包;对所述缓存数据包进行分割,得到各所述独立缓存包,所述独立缓存包为应用程序服务器进行数据缓存更新的最小单位的缓存数据包;确定至少一个所述独立缓存包并将其发送给对应的应用程序服务器。
其中,主数据库服务器接收到缓存更新指令后,会对缓存更新指令进行解析,由于解析后的缓存更新指令,与存储在主数据库的缓存数据包之间创建了关联关系,因此,根据解析后的缓存更新指令可以确定对应的缓存数据包。缓存数据包至少包括一个独立缓存包,通常一个应用程序服务器进行本地更新时,只需要该缓存数据包中的一个独立缓存包即可。对于该缓存数据包中的其他独立缓存包,则可能是重复的包或者是其他应用程序服务器所需的包。因此,需要对缓存数据包进行分割,以使得每个应用程序服务器都能得到各自需要的独立缓存包。其中,独立缓存包为应用程序服务器进行数据缓存更新的最小单位的缓存数据包。
在将一个缓存数据包分割成多个独立缓存包之后,主数据库服务器再将缓存更新指令对应的一个或多个独立缓存包直接发送给对应的应用程序服务器。
在本实施例中,通过根据缓存更新指令确定缓存数据包,对缓存数据包进行分割,得到各独立缓存包,将各独立缓存包中为应用程序服务器所需要的,选择至少一个将其发送给对应的应用程序服务器,从而可以使应用程序服务器接收的缓存数据包不会出现冗余、累赘。
在一个实施例中,如图3所示,提供了一种服务器数据缓存更新方法,
步骤S302,获取各应用程序服务器当前分别发送的缓存更新指令。
步骤S304,当所述缓存更新指令已被处理过时,将所述缓存更新指令发送给备数据服务器,由所述备数据服务器根据所述缓存更新指令向对应的应用程序服务器发送缓存数据包。
其中,缓存数据包是缓存更新指令首次被处理时,主数据库服务器同步至备数据服务器的;缓存数据包,用于使各应用程序服务器根据缓存数据包进行数据缓存更新。
步骤S306,根据所述缓存更新指令确定缓存数据包。
其中,缓存数据包至少包括一个独立缓存包。
步骤S308,对所述缓存数据包进行分割,得到各所述独立缓存包。
其中,独立缓存包为应用程序服务器进行数据缓存更新的最小单位的缓存数据包;
步骤S310,确定至少一个所述独立缓存包并将其发送给对应的应用程序服务器。
在本实施例中,主数据库服务器获取各应用程序服务器当前分别发送的缓存更新指令,当确定该缓存更新指令已被处理过时,将该缓存更新指令发送给备数据库服务器,通过备数据库服务器根据缓存更新指令,向各个应用程序服务器发送其需要的缓存数据包进行数据缓存更新。即,只要该缓存更新指令不是首次获得,备数据库服务器均可为主数据库服务器代劳,由备数据库服务器根据该缓存更新指令向各应用程序服务器进行缓存数据包的发送,而不需要各个应用程序服务器同时访问主数据库服务器,因此本申请在一定程度上减轻了主数据库服务器的处理压力,进而可以有效提高主数据库服务器稳定性。
在一个实施例中,一种主数据库服务器,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,如图1所示,一种服务器数据缓存更新系统,所述系统包括:应用程序服务器102、备数据库服务器106和主数据库服务器104;
所述应用程序服务器102,当需要进行数据缓存更新时,向所述主数据库服务器104发送缓存更新指令;
所述主数据库服务器104,获取应用程序服务器102发送的缓存更新指令;当所述缓存更新指令已被处理过时,将所述缓存更新指令发送给备数据服务器,由所述备数据服务器根据所述缓存更新指令向对应的应用程序服务器102发送缓存数据包,所述缓存数据包是缓存更新指令首次被处理时,主数据库服务器104同步至所述备数据服务器的;所述缓存数据包,用于使各应用程序服务器102根据所述缓存数据包进行数据缓存更新;
所述备数据库服务器106,接收并响应所述缓存更新指令向对应的应用程序服务器102发送缓存数据包。
其中,缓存更新指令是基于websocket协议的request指令,也可以是基于http协议的request指令,还可以是基于其他持久或非持久的握手协议的request指令。缓存数据包大量地存储于主数据库服务器104中,不同应用程序服务器102其需要的缓存数据包在内容上是不同的。通常在服务器集群中选择性能最好、网络最畅通的一台作为主数据库服务器104,在服务器集群中选择其中一个性能较好的应用程序服务器102作为备数据库服务器106,备数据库服务器106主要用于响应主数据库服务器104之前已经处理过的缓存更新指令,将缓存数据包发送给对应的应用程序服务器102。
对于不同的应用程序服务器102,其发送的缓存更新指令在内容上惟一的区别仅在于:携带了该应用程序服务器102的设备信息,该设备信息可以用于区分各缓存更新指令分别来自于哪一个应用程序服务器102。对于同一个应用程序服务器102,其发送的缓存更新指令在指令携带内容上不会发生变化,因此主数据库服务器104再次接收同一个缓存更新指令时,该缓存更新指令不会因为发送次数而在内容上发生变化。在一个实施例中,为了判断该缓存更新指令是否之前被处理过,主数据库服务器104将该缓存更新指令和备数据库服务器106中存储的历史指令进行比较,从而可以识别出缓存更新指令是否之前被处理过。在另一个实施例中,为了判断该缓存更新指令是否之前被处理过,主数据库服务器104根据查询自身接收缓存更新指令的历史记录,即可确定当前接收的缓存更新指令是否之前已被处理过。
具体地,在一个服务器集群中,各应用程序服务器102需要进行更新本地缓存(进行数据缓存更新)时,会向主数据库服务器104发送相应的缓存更新指令。主数据库服务器104接收各个缓存更新指令,当主数据库服务器104识别出缓存更新指令已被处理过时,主数据库服务器104将缓存更新指令发送给备数据库服务器106,备数据库服务器106接收该并解析该缓存更新指令,确定发送该缓存更新指令的应用程序服务器102,再将主数据库服务器104之前同步到备数据库服务器106的缓存数据包发送给对应的应用程序服务器102。
在本实施例中,主数据库服务器获取各应用程序服务器当前分别发送的缓存更新指令,当确定该缓存更新指令已被处理过时,将该缓存更新指令发送给备数据库服务器,通过备数据库服务器根据缓存更新指令,向各个应用程序服务器发送其需要的缓存数据包进行数据缓存更新。即,只要该缓存更新指令不是首次获得,备数据库服务器均可为主数据库服务器代劳,由备数据库服务器根据该缓存更新指令向各应用程序服务器进行缓存数据包的发送,而不需要各个应用程序服务器同时访问主数据库服务器,因此本申请在一定程度上减轻了主数据库服务器的处理压力,进而可以有效提高主数据库服务器稳定性。
在一个实施例中,所述应用程序服务器102,还用于对所述备数据库服务器106发送的所述缓存数据包进行寄存,校验是否需要所述缓存数据包,当需要所述缓存数据包时,根据所述缓存数据包进行数据缓存更新。
其中,无论是备数据库服务器106还是主数据库服务器104发送的缓存数据包,应用程序服务器102在接收到后,都会先寄存,寄存之后再做判断是否是其需要的缓存数据包。当应用程序服务器102寄存完缓存数据包之后,开始校验这些缓存数据包是否是其需要的,当应用程序服务器102确定需要其中的缓存数据包时,则利用该缓存数据包进行数据缓存更新。在一个实施例中,应用程序服务器102接收到的缓存数据包为多个独立缓存包,应用程序服务器102将对该多个独立缓存包进行寄存。
在本实施例中,应用程序服务器先寄存接收的缓存数据包,再通过校验接收的缓存数据包是否需要,从而根据需要的缓存数据包进行数据缓存更新。
在一个实施例中,所述应用程序服务器102,当不需要所述缓存数据包时,清理寄存的所述缓存数据包。
其中,当应用程序服务器102不需要其接收的缓存数据包时,为了减少内存占用,会清理寄存的缓存数据包。
在本实施例中,当确定缓存数据包不被需要时,将其清理有利于减少内存占用。
在一个实施例中,所述备数据库服务器106,还用于同时获取所述主数据库服务器104的缓存数据包和所述缓存更新指令,并将所述缓存更新指令作为历史指令进行存储。
其中,备数据库服务器106能代劳主数据库服务器104向各应用程序服务器102发送缓存数据包,是因为备数据库服务器106在主数据库服务器104首次处理一些缓存更新指令时,就将相应的缓存更新指令和缓存数据包同步发送给了备数据库服务器106。对于主数据库服务器104当前接收的缓存更新指令而言,缓存更新指令在备数据库服务器106中存储时是一种历史指令。
在本实施例中,通过备数据库服务器每次接收主数据库服务器同步发送的缓存更新指令和缓存数据包,从而在主数据库服务器不是首次处理该缓存更新指令时,能够由备数据库服务器根据该缓存更新指令向对应的应用程序服务器发送缓存数据包,从而减轻主数据库服务器的处理压力。
在一个实施例中,主数据库服务器104,还用于根据所述缓存更新指令确定缓存数据包,所述缓存数据包至少包括一个独立缓存包;对所述缓存数据包进行分割,得到各所述独立缓存包,所述独立缓存包为应用程序服务器102进行数据缓存更新的最小单位的缓存数据包;确定至少一个所述独立缓存包并将其发送给对应的应用程序服务器102。
其中,主数据库服务器104接收到缓存更新指令后,会对缓存更新指令进行解析,由于解析后的缓存更新指令,与存储在主数据库的缓存数据包之间创建了关联关系,因此,根据解析后的缓存更新指令可以确定对应的缓存数据包。缓存数据包至少包括一个独立缓存包,通常一个应用程序服务器102进行本地更新时,只需要该缓存数据包中的一个独立缓存包即可。对于该缓存数据包中的其他独立缓存包,则可能是重复的包或者是其他应用程序服务器102所需的包。因此,需要对缓存数据包进行分割,以使得每个应用程序服务器102都能得到各自需要的独立缓存包。其中,独立缓存包为应用程序服务器102进行数据缓存更新的最小单位的缓存数据包。
在将一个缓存数据包分割成多个独立缓存包之后,主数据库服务器104再将缓存更新指令对应的一个或多个独立缓存包直接发送给对应的应用程序服务器102。
在本实施例中,通过根据缓存更新指令确定缓存数据包,对缓存数据包进行分割,得到各独立缓存包,将各独立缓存包中为应用程序服务器所需要的,选择至少一个将其发送给对应的应用程序服务器,从而可以使应用程序服务器接收的缓存数据包不会出现冗余、累赘。
在一个实施例中,备数据库服务器106,还用于在接收到主数据库服务器104发送的缓存更新指令时,向对应的应用程序服务器102发送缓存数据包,包括:根据所述缓存更新指令确定缓存数据包,所述缓存数据包至少包括一个独立缓存包;对所述缓存数据包进行分割,得到各所述独立缓存包,所述独立缓存包为应用程序服务器102进行数据缓存更新的最小单位的缓存数据包;确定至少一个所述独立缓存包并将其发送给对应的应用程序服务器102。
应该理解的是,虽然上述实施例涉及的各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述实施例涉及的各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
关于服务器数据缓存更新装置的具体限定可以参见上文中对于服务器数据缓存更新方法的限定,在此不再赘述。上述服务器数据缓存更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储服务器数据缓存更新数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种服务器数据缓存更新方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种服务器数据缓存更新方法,其特征在于,应用于主数据库服务器,所述方法包括:
获取各应用程序服务器当前分别发送的缓存更新指令;
当所述缓存更新指令已被处理过时,将所述缓存更新指令发送给备数据库服务器,由所述备数据库服务器根据所述缓存更新指令向对应的应用程序服务器发送缓存数据包;所述缓存数据包是缓存更新指令首次被处理时,主数据库服务器同步至所述备数据库服务器的;所述缓存数据包,用于使各应用程序服务器根据所述缓存数据包进行数据缓存更新;
当所述缓存更新指令未被处理过时,根据所述缓存更新指令确定缓存数据包,所述缓存数据包至少包括一个独立缓存包;
对所述缓存数据包进行分割,得到各所述独立缓存包,所述独立缓存包为应用程序服务器进行数据缓存更新的最小单位的缓存数据包;
确定至少一个所述独立缓存包并将其发送给对应的应用程序服务器。
2.根据权利要求1所述的方法,其特征在于,在根据所述缓存更新指令将所述缓存数据包发送给对应的应用程序服务器之后,所述方法还包括:将所述缓存更新指令作为历史指令,与所述缓存数据包同时发送至所述备数据库服务器进行存储。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
校验当前获取的所述缓存更新指令和所述历史指令是否相同;
若当前获取的所述缓存更新指令和所述历史指令相同,则确定所述缓存更新指令已被处理过;
执行将所述缓存更新指令发送给备数据库服务器的步骤。
4.根据权利要求1所述的方法,其特征在于,所述缓存更新指令为基于websocket协议的request指令,所述获取各应用程序服务器当前分别发送的缓存更新指令,包括:
获取各应用程序服务器当前分别发送的基于websocket协议的request指令。
5.根据权利要求1所述的方法,其特征在于,所述缓存更新指令为基于http协议的request指令,所述获取各应用程序服务器当前分别发送的缓存更新指令,包括:
获取各应用程序服务器当前分别发送的基于http协议的request指令。
6.一种主数据库服务器,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现1至5任一项所述的服务器数据缓存更新方法。
7.一种服务器数据缓存更新系统,其特征在于,所述系统包括:应用程序服务器、备数据库服务器和如权利要求6所述的主数据库服务器;
所述应用程序服务器,当需要进行数据缓存更新时,向所述主数据库服务器发送缓存更新指令;
所述主数据库服务器,获取应用程序服务器发送的缓存更新指令;当所述缓存更新指令已被处理过时,将所述缓存更新指令发送给备数据库服务器,由所述备数据库服务器根据所述缓存更新指令向对应的应用程序服务器发送缓存数据包,所述缓存数据包是缓存更新指令首次被处理时,主数据库服务器同步至所述备数据库服务器的;所述缓存数据包,用于使各应用程序服务器根据所述缓存数据包进行数据缓存更新当所述缓存更新指令未被处理过时,根据所述缓存更新指令确定缓存数据包,所述缓存数据包至少包括一个独立缓存包;对所述缓存数据包进行分割,得到各所述独立缓存包,所述独立缓存包为应用程序服务器进行数据缓存更新的最小单位的缓存数据包;确定至少一个所述独立缓存包并将其发送给对应的应用程序服务器;
所述备数据库服务器,接收并响应所述缓存更新指令向对应的应用程序服务器发送缓存数据包。
8.根据权利要求7所述的系统,其特征在于,所述应用程序服务器,还用于对所述备数据库服务器发送的所述缓存数据包进行寄存,校验是否需要所述缓存数据包,当需要所述缓存数据包时,根据所述缓存数据包进行数据缓存更新。
9.根据权利要求8所述的系统,其特征在于,所述应用程序服务器,当不需要所述缓存数据包时,清理寄存的所述缓存数据包。
10.根据权利要求9所述的系统,其特征在于,所述备数据库服务器,还用于同时获取所述主数据库服务器的缓存数据包和所述缓存更新指令,并将所述缓存更新指令作为历史指令进行存储。
CN202110800824.7A 2021-07-15 2021-07-15 服务器数据缓存更新方法、系统和主数据库服务器 Active CN113468195B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110800824.7A CN113468195B (zh) 2021-07-15 2021-07-15 服务器数据缓存更新方法、系统和主数据库服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110800824.7A CN113468195B (zh) 2021-07-15 2021-07-15 服务器数据缓存更新方法、系统和主数据库服务器

Publications (2)

Publication Number Publication Date
CN113468195A CN113468195A (zh) 2021-10-01
CN113468195B true CN113468195B (zh) 2023-10-03

Family

ID=77880502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110800824.7A Active CN113468195B (zh) 2021-07-15 2021-07-15 服务器数据缓存更新方法、系统和主数据库服务器

Country Status (1)

Country Link
CN (1) CN113468195B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105338095A (zh) * 2015-11-17 2016-02-17 中国建设银行股份有限公司 一种会话数据处理方法和装置
CN105429805A (zh) * 2015-12-21 2016-03-23 熊猫电子集团有限公司 一种分布式网管系统及信息处理方法
CN107038174A (zh) * 2016-02-04 2017-08-11 北京京东尚科信息技术有限公司 用于数据系统的数据同步方法和装置
CN108170745A (zh) * 2017-12-20 2018-06-15 福建网龙计算机网络信息技术有限公司 一种访问web端缓存数据的方法及终端
CN110753099A (zh) * 2019-10-12 2020-02-04 平安健康保险股份有限公司 分布式缓存系统以及缓存数据更新方法
CN111382142A (zh) * 2020-03-04 2020-07-07 海南金盘智能科技股份有限公司 数据库的操作方法、服务器和计算机存储介质
CN113032432A (zh) * 2021-02-22 2021-06-25 北京齐尔布莱特科技有限公司 一种数据缓存处理方法、系统、计算设备及可读存储介质
CN113094430A (zh) * 2021-03-25 2021-07-09 北京达佳互联信息技术有限公司 一种数据处理方法、装置、设备以及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090019094A1 (en) * 2007-07-13 2009-01-15 Scott David Lashley Redirected updates on a backup server

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105338095A (zh) * 2015-11-17 2016-02-17 中国建设银行股份有限公司 一种会话数据处理方法和装置
CN105429805A (zh) * 2015-12-21 2016-03-23 熊猫电子集团有限公司 一种分布式网管系统及信息处理方法
CN107038174A (zh) * 2016-02-04 2017-08-11 北京京东尚科信息技术有限公司 用于数据系统的数据同步方法和装置
CN108170745A (zh) * 2017-12-20 2018-06-15 福建网龙计算机网络信息技术有限公司 一种访问web端缓存数据的方法及终端
CN110753099A (zh) * 2019-10-12 2020-02-04 平安健康保险股份有限公司 分布式缓存系统以及缓存数据更新方法
CN111382142A (zh) * 2020-03-04 2020-07-07 海南金盘智能科技股份有限公司 数据库的操作方法、服务器和计算机存储介质
CN113032432A (zh) * 2021-02-22 2021-06-25 北京齐尔布莱特科技有限公司 一种数据缓存处理方法、系统、计算设备及可读存储介质
CN113094430A (zh) * 2021-03-25 2021-07-09 北京达佳互联信息技术有限公司 一种数据处理方法、装置、设备以及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Improving the Performance of Online Auctions Through Server-side Activity-based Caching;Daniel A. Menasc´e 等;World Wide Web;第10卷(第2期);181–204 *
数据库容灾技术在装配MES系统中的应用研究;王鹏;;现代计算机(专业版)(第16期);62-65 *
集群环境下CMS的核心架构设计;祁晖;王佳;;信息化纵横(第16期);10-12 *

Also Published As

Publication number Publication date
CN113468195A (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
US10496668B1 (en) Optimized tender processing of hash-based replicated data
US10649905B2 (en) Method and apparatus for storing data
US20140337022A1 (en) System and method for load balancing in a speech recognition system
US11922059B2 (en) Method and device for distributed data storage
CN111475483A (zh) 数据库迁移方法、装置及计算设备
CN113419824A (zh) 数据处理方法、装置、系统及计算机存储介质
CN107391033B (zh) 数据迁移方法及装置、计算设备、计算机存储介质
CA3129982A1 (en) Method and system for accessing distributed block storage system in kernel mode
CN104980307A (zh) 数据访问请求的处理方法、装置及数据库服务器
CN114968102B (zh) 一种数据缓存方法、装置、系统、计算机设备及存储介质
CN113794764A (zh) 服务器集群的请求处理方法、介质和电子设备
US10545667B1 (en) Dynamic data partitioning for stateless request routing
CN110955390A (zh) 数据处理方法、装置和电子设备
CN116049109A (zh) 一种基于过滤器的文件校验方法、系统、设备和介质
US11055223B2 (en) Efficient cache warm up based on user requests
CN111752482A (zh) 一种全闪存分布式存储系统中写数据的方法及系统
CN110910249A (zh) 一种数据处理方法、装置、节点设备及存储介质
CN113468195B (zh) 服务器数据缓存更新方法、系统和主数据库服务器
US20210297510A1 (en) Efficient packet processing for express data paths
CN117407159A (zh) 内存空间的管理方法及装置、设备、存储介质
CN112052104A (zh) 基于多机房实现的消息队列的管理方法及电子设备
CN115374031A (zh) 近存储器处理双列直插式存储器模块及其操作方法
CN111274176B (zh) 一种信息处理方法、电子设备、系统及存储介质
WO2021237431A1 (zh) 数据处理方法、装置、处理设备以及数据存储系统
CN112231290A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230811

Address after: 518000 building 501, 502, 601, 602, building D, wisdom Plaza, Qiaoxiang Road, Gaofa community, Shahe street, Nanshan District, Shenzhen City, Guangdong Province

Applicant after: China Southern Power Grid Digital Platform Technology (Guangdong) Co.,Ltd.

Address before: Room 86, room 406, No.1, Yichuang street, Zhongxin Guangzhou Knowledge City, Huangpu District, Guangzhou City, Guangdong Province

Applicant before: Southern Power Grid Digital Grid Research Institute Co.,Ltd.

GR01 Patent grant
GR01 Patent grant