CN103995824A - 减缓服务器缓存压力的方法 - Google Patents
减缓服务器缓存压力的方法 Download PDFInfo
- Publication number
- CN103995824A CN103995824A CN201410114952.6A CN201410114952A CN103995824A CN 103995824 A CN103995824 A CN 103995824A CN 201410114952 A CN201410114952 A CN 201410114952A CN 103995824 A CN103995824 A CN 103995824A
- Authority
- CN
- China
- Prior art keywords
- data
- algorithm
- client
- model
- user
- 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.)
- Granted
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/23—Updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种减缓服务器缓存压力的方法,包括:检测到用户登录后,读取数据库中记录的用户数据,构建所述用户的数据模型包并发送给客户端,以供所述客户端生成数据模型;构建数据维护算法模型并发送给所述客户端;当所述用户的数据更新时,发送算法调用命令给所述客户端,以供所述客户端根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新客户端的数据模型。本发明还提供另一种减缓服务器缓存压力的方法,能有效解决服务器缓存用户数据的维护压力问题。
Description
技术领域
本发明涉及服务器缓存处理技术领域,特别是涉及一种减缓服务器缓存压力的方法。
背景技术
互联网发展到今天,覆盖范围越来越大,覆盖深度已经深入我们的衣食住行。随时服务器服务的客户端基数增大,服务器的处理能力受到了挑战。特别在大量用户请求处理中,服务器为了加快对请求的处理速度,不再每次都直接查询和写数据库,而是先做了缓存处理,在内存中维护一份数据供自身访问,然后再批量同步数据和写数据库,减少查询数据库和写数据库,这有效的提高服务器处理能力。但是,如果用户数量大到百万的规模,单靠服务器的缓存技术已经应付不来,单服务器的内存有限,无法完全缓存;即使是分布式服务器架构,也要面临数据同步的问题,影响了请求处理速度。这里问题的关键就是服务器需要在缓存内维护大量的用户个体数据信息。
传统技术中采用分布器服务器系统,将单个服务器的缓存压力分摊给别的服务器,有效降低单个服务器的缓存压力。但因为缓存分配到了不同的服务器,所以在查询缓存数据时需要在多个服务器间查找,增加了查询时间;另外如果两个或以上的服务器缓存了同一份数据,那就面临了数据同步问题,这需要消耗大量的时间并让客户端的请求处于等待中。
发明内容
基于此,本发明提供一种减缓服务器缓存压力的方法和系统,能有效解决服务器缓存用户数据的维护压力问题。
一种减缓服务器缓存压力的方法,包括如下步骤:
检测到用户登录后,读取数据库中记录的用户数据,构建所述用户的数据模型包并发送给客户端,以供所述客户端生成数据模型;
构建数据维护算法模型并发送给所述客户端;
当所述用户的数据更新时,发送算法调用命令给所述客户端,以供所述客户端根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新客户端的数据模型。
一种减缓服务器缓存压力的方法,包括如下步骤:
用户登录后,接收服务器读取数据库中记录的用户数据后构建的数据模型包,创建所述用户的数据模型;
接收并存储服务器发送的数据维护算法模型;
当接收到服务器发送的算法调用命令时,根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新所述数据模型。
上述减缓服务器缓存压力的方法,客户端接收服务器下发的数据模型并在本地创建,服务器则不需要在本身维护一份与客户端有关的数据,同时服务器还下发一份数据维护算法,当需要进行数据更新时,只需要把需调用的数据维护算法告诉客户端,由客户端进行数据的更新;本发明让大量的客户端承担了自身的缓存压力,减缓了服务器的缓存压力和解决数据同步问题,提高了服务器对客户端请求的处理能力,能有效提高服务器的健壮性。
附图说明
图1为本发明减缓服务器缓存压力的方法在实施例一中的流程示意图。
图2为本发明减缓服务器缓存压力的方法在实施例二中的流程示意图。
图3为本发明减缓服务器缓存压力的方法在实施例三中的流程示意图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细说明,但本发明的实施方式不限于此。
实施例一、
如图1所示,本实施例从服务器的处理过程进行说明,包括如下步骤:
S11、检测到用户登录后,读取数据库中记录的用户数据,构建所述用户的 数据模型并发送给客户端,以供客户端生成数据模型;
服务器检测到用户登录后,根据该用户的ID,读取数据库,数据库中记录有该用户的所有相关数据,包括数据名称、数据类型和数据值等,根据各种数据信息,服务器构建数据模型包后发给客户端。
S12、构建数据维护算法模型并发送给所述客户端;
本步骤中,服务器还需构建数据维护算法模型发给客户端;本实施例的数据维护算法,是指服务器记录的对该用户的数据执行某种更新规则时使用的算法;
比如在游戏场景下,服务器记录有某种游戏规则,该游戏规则对应有一套算法,用于对用户进行数据更新;用户参与某场游戏活动,游戏结束后用户状态发生改变,其对应的数据需要改动,则服务器会根据游戏规则调用对应的实现保存的算法,更新该用户数据。
S13、当所述用户的数据更新时,发送算法调用命令给所述客户端,以供所述客户端根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新客户端的数据模型;
当服务器需要对用户的数据进行更新时,服务器发送算法调用命令给客户端,客户端根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新客户端的数据模型。
本实施例所述的服务器对用户数据的更新,包括两类更新,一类是对客户端创建数据模型后对用户数据的初始化,一类是用户状态改变时控制用户数据的更新;而客户端在创建数据模型时,只需声明对应的变量,而无需对该变量执行赋值操作,某些用户数据需执行赋值初始化的操作,也由服务器控制通过调用数据维护算法而实现;在本实施例不论是用户数据的初始化还是用户数据的更新,都可通过客户端调用数据维护算法完成。
本实施例中服务器可通过单播的方式控制某个客户端的用户数据更新,也可采用广播的方式进行,广播方式适合用于需要统一对所有客户端按同一数据维护算法更新用户数据的场景,服务器只需要发一条广播作为算法调用命令,通知所有客户端调用同一算法,每个客户端收到广播后调用对应的算法,本地 的用户数据就实现更新。
本实施例的服务器不需要在本地维护一份与客户端用户有关的数据,服务器在用户登录后发送数据模型包供客户端生成本地用户数据,当用户的数据需要更新时,只需要把对应的数据维护算法告诉客户端,由客户端调用对应的数据维护算法更新其自身数据,让大量的客户端承担自身的缓存压力,减缓了服务器的缓存压力和解决数据同步问题。
本实施例的方法特别适合用于游戏大厅等具有大量客户端同时参与并使用同一套数据更新规则的场景,且适用于处理非敏感数据;在这类场景中,大量的客户端同时参与某类游戏活动,该游戏活动具有一套游戏规则,用于根据游戏的进展情况更新用户数据;在游戏活动结束后,所有参与游戏的用户需根据游戏规则更新其数据;采用本实施例的方法,由于客户端缓存有其数据模型及数据维护算法,由客户端调用对应的数据维护算法更新其自身数据,显著减少了服务器的缓存压力。
在一较佳实施例中,所述数据模型包中可包含有所述每条用户数据的数据名称和数据类型;
在数据模型包中记录每条用户数据的数据名称和数据类型,以供客户端根据数据名称和数据类型创建其本地数据模型,保证客户端创建的数据模型与数据库中记录的该用户的用户数据保持一致。
在一较佳实施例中,所述数据维护算法模型包含多个数据维护算法及其对应的算法标识;
通过对每个数据维护算法添加算法标识,当服务器需更新用户数据时,只需在发送给客户端的算法调用命令附加需调用到的算法对应的算法标识,可有效减少两端的数据交互,也有利于客户端更快速地查找到需调用的数据维护算法。
在一较佳实施例中,还可包括步骤:
当接收到客户端的数据更新请求时,读取所述数据更新请求中包含的数据值,根据所述数据的数据值调用数据维护算法更新所述数据值后发送给客户端;
服务器处理客户端的数据更新请求时,由于客户端中创建有数据模型,则 客户端的请求更新请求附加有该条用户数据的数据值,此时服务器就不再需要查询数据库,可以直接根据客户端带来的数据进行处理,减少了对数据库的依赖,服务器也不需要针对客户端的数据再做缓存,减缓了服务器的缓存压力。
实施例二、
如图2所示,本实施例从客户端的处理过程进行说明,包括如下步骤:
S21、用户登录后,接收服务器读取数据库中记录的用户数据后构建的数据模型包,创建所述用户的数据模型;
S22、接收并存储服务器发送的数据维护算法模型;
S23、当接收到服务器发送的算法调用命令时,根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新所述数据模型;
客户端检测到用户登录后,获取服务器从数据库获取到用户数据后创建的数据模型包,根据数据模型包在申请到的内存中创建数据模型;客户端还接收服务器发送的数据维护算法模型并存储;当服务器控制客户端进行用户数据更新时,接收服务器下发的算法调用命令,根据算法调用命令,在数据维护算法模型中查找对应的算法,调用后实现客户端用户数据的更新。
本实施例由客户端在本地内存中维护用户有关的数据,当服务器控制用户的数据需要更新时,只需要获得服务器发送的算法调用命令,由客户端调用对应的数据维护算法更新其自身数据,让大量的客户端承担自身的缓存压力,减缓了服务器的缓存压力和解决数据同步问题;
本实施例的方法特别适合用于游戏大厅等具有大量客户端同时参与并使用同一套数据更新规则的场景;在这类场景中,大量的客户端同时参与某类游戏活动,该游戏活动具有一套游戏规则,用于更新用户数据;在游戏活动结束后,所有参与游戏的用户需根据游戏规则更新其数据;采用本实施例的方法,客户端缓存有其数据模型及数据维护算法,由客户端调用对应的数据维护算法更新其自身数据,显著减少了服务器的缓存压力。
在一较佳实施例中,所述数据模型包可包括每条用户数据的数据名称和数据类型;
所述创建数据模型的步骤为:
对每条用户数据声明对应的变量,其中,所述变量的变量名为所述数据名称,所述变量的类型为所述数据类型;
数据模型包中记录了每条用户数据的数据名称和数据类型,例如int var1;int var2;“int”表示该变量为整型变量,“var1”和“var2”为变量名称;客户端根据数据名称和数据类型创建本地数据模型,保证客户端创建的数据模型与数据库中记录的该用户的用户数据保持一致。
在一较佳实施例中,所述数据维护算法模型可包含多个数据维护算法及其对应的算法标识;
进一步地,所述算法调用命令记录有当前需调用的数据维护算法对应的算法标识;
所述根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新所述数据模型的步骤可为:
根据所述算法标识,在数据维护算法模型中查找并调用对应数据维护算法,更新所述数据模型。
例如算法1为ServiceData1=ServiceData2+ServiceData3,意思为把客户端的变量ServiceData2和ServiceData3相加,结果赋值给ServiceData1;
如算法2:ServiceData100=X,把服务器发来的值赋值给ServiceData100;
数据维护算法也可采用其他语法规则,如算法1字符串“Formula1(var1:var2+var3)”,其中Formula1是算法名,小括号()内是具体运算;“:”左边的var1是赋值对象,把“:”右边的var2+var3的结果赋值给var1,运算规则遵守中缀表达式计算方法;
算法2字符串“Formula2(var4:100)”,其中Formula2是算式名,把数值100赋值给var4。
具体的语法规则不局限与上述举例,可根据实际需要和客户端与服务器的编程语言而设计。
通过对每个数据维护算法添加算法标识,当服务器需更新用户数据时,只需在发送给客户端的算法调用命令附加需调用到的算法对应的算法标识,有效 减少两端的数据交互,也有利于客户端更快速地查找到需调用的数据维护算法。
在一较佳实施例中,还可包括步骤:
当向服务器发起数据更新请求时,读取数据模型中需更新的数据当前的数据值,添加到所述数据更新请求中。
服务器处理客户端的请求时,由于客户端中创建有数据模型,则客户端在更新请求附加数据的数据值,此时服务器接收到后就不再需要查询数据库,可以直接根据客户端发送来的数据进行处理,减少了对数据库的依赖,服务器也不需要针对客户端的数据再进行缓存,减缓了服务器的缓存压力。
实施例三、
如图3所示,本实施例从服务器与客户端的交互处理为例进行说明,包括如下步骤:
S31、用户登录;
S32、服务器读取数据库中记录的用户数据,构建所述用户的数据模型包并发送给客户端;
S33、构建数据维护算法模型并发送给所述客户端;
S34、接收服务器发送的数据模型包,创建所述用户的数据模型;
S35、接收并存储服务器发送的数据维护算法模型;
S36、当所述用户的数据更新时,发送算法调用命令给所述客户端;
S37、当接收到服务器发送的算法调用命令时,根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新所述数据模型。
本发明减缓服务器缓存压力的方法,客户端接收服务器下发的数据模型并在本地创建,服务器则不需要在本身维护一份与客户端有关的数据,同时服务器还下发一份数据维护算法,当需要进行数据更新时,只需要把需调用的数据维护算法告诉客户端,由客户端进行数据的更新;本发明让大量的客户端承担了自身的缓存压力,减缓了服务器的缓存压力和解决数据同步问题,提高了服务器对客户端请求的处理能力,能有效提高服务器的健壮性。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域 的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种减缓服务器缓存压力的方法,其特征在于,包括如下步骤:
检测到用户登录后,读取数据库中记录的用户数据,构建所述用户的数据模型包并发送给客户端,以供所述客户端生成数据模型;
构建数据维护算法模型并发送给所述客户端;
当所述用户的数据更新时,发送算法调用命令给所述客户端,以供所述客户端根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新客户端的数据模型。
2.根据权利要求1所述的减缓服务器缓存压力的方法,其特征在于,所述数据模型包中包含所述每条用户数据的数据名称和数据类型。
3.根据权利要求1所述的减缓服务器缓存压力的方法,其特征在于,所述数据维护算法模型包包含多个数据维护算法及其对应的算法标识。
4.根据权利要求3所述的减缓服务器缓存压力的方法,其特征在于,还包括步骤:
当接收到客户端的数据更新请求时,读取所述数据更新请求中包含的数据值,根据所述数据值调用所述数据维护算法更新所述数据值后发送给客户端。
5.一种减缓服务器缓存压力的方法,其特征在于,包括如下步骤:
用户登录后,接收服务器读取数据库中记录的用户数据后构建的数据模型包,创建所述用户的数据模型;
接收并存储服务器发送的数据维护算法模型;
当接收到服务器发送的算法调用命令时,根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新所述数据模型。
6.根据权利要求5所述的减缓服务器缓存压力的方法,其特征在于,所述数据模型包包括每条用户数据的数据名称和数据类型;
所述创建数据模型的步骤为:
对每条用户数据声明对应的变量,其中,所述变量的变量名为所述数据名称,所述变量的类型为所述数据类型。
7.根据权利要求5所述的减缓服务器缓存压力的方法,其特征在于,所述数据维护算法模型包含多个数据维护算法及其对应的算法标识。
8.根据权利要求7所述的减缓服务器缓存压力的方法,其特征在于,所述算法调用命令记录有当前需调用的数据维护算法对应的算法标识;
根据所述算法调用命令调用数据维护算法模型中对应的数据维护算法,更新所述数据模型的步骤为:
根据所述算法标识,在数据维护算法模型中查找并调用对应数据维护算法,更新所述数据模型。
9.根据权利要求7所述的减缓服务器缓存压力的方法,其特征在于,还包括步骤:
当向服务器发起数据更新请求时,读取数据模型中需更新的数据当前的数据值,添加到所述数据更新请求中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410114952.6A CN103995824B (zh) | 2014-03-25 | 2014-03-25 | 减缓服务器缓存压力的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410114952.6A CN103995824B (zh) | 2014-03-25 | 2014-03-25 | 减缓服务器缓存压力的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103995824A true CN103995824A (zh) | 2014-08-20 |
CN103995824B CN103995824B (zh) | 2018-07-13 |
Family
ID=51309989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410114952.6A Active CN103995824B (zh) | 2014-03-25 | 2014-03-25 | 减缓服务器缓存压力的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103995824B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639750A (zh) * | 2014-08-29 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 业务数据处理方法及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101668004A (zh) * | 2008-09-04 | 2010-03-10 | 阿里巴巴集团控股有限公司 | 一种网页获取方法、装置及系统 |
CN102073494A (zh) * | 2010-12-30 | 2011-05-25 | 用友软件股份有限公司 | 缓存数据管理方法和装置 |
CN103034632A (zh) * | 2011-09-29 | 2013-04-10 | 北京神州泰岳软件股份有限公司 | 一种信息传送方法和系统 |
-
2014
- 2014-03-25 CN CN201410114952.6A patent/CN103995824B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101668004A (zh) * | 2008-09-04 | 2010-03-10 | 阿里巴巴集团控股有限公司 | 一种网页获取方法、装置及系统 |
CN102073494A (zh) * | 2010-12-30 | 2011-05-25 | 用友软件股份有限公司 | 缓存数据管理方法和装置 |
CN103034632A (zh) * | 2011-09-29 | 2013-04-10 | 北京神州泰岳软件股份有限公司 | 一种信息传送方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109639750A (zh) * | 2014-08-29 | 2019-04-16 | 阿里巴巴集团控股有限公司 | 业务数据处理方法及设备 |
CN109639750B (zh) * | 2014-08-29 | 2021-09-07 | 创新先进技术有限公司 | 业务数据处理方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103995824B (zh) | 2018-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7237274B2 (ja) | コンポーネントベースのユーザインターフェースのための宣言型の反応的なデータ層 | |
CN107678776A (zh) | 多模块版本依赖关系构建方法、装置、服务器和存储介质 | |
CN106030528B (zh) | 数据代理服务 | |
CN106133743B (zh) | 用于优化预安装应用程序的扫描的系统和方法 | |
CN108885582A (zh) | 存储器池结构的多租户存储器服务 | |
Ke et al. | On traffic-aware partition and aggregation in mapreduce for big data applications | |
US11368479B2 (en) | Methods and apparatus to identify and report cloud-based security vulnerabilities | |
CN109564527A (zh) | 云计算节点的安全配置 | |
US10462261B2 (en) | System and method for configuring a data access system | |
CN106021445A (zh) | 一种加载缓存数据的方法及装置 | |
WO2011115833A2 (en) | Distributed event system for relational models | |
CN107016027A (zh) | 实现业务信息快速搜索的方法和装置 | |
CN104317957B (zh) | 一种报表处理的开放平台、系统及报表处理方法 | |
CN106611037A (zh) | 用于分布式图计算的方法与设备 | |
CN104220987A (zh) | 应用安装 | |
CN108667639A (zh) | 一种私有云环境下的资源管理方法及管理服务器 | |
CN107613040A (zh) | 一种域名系统 dns 服务器查询的方法和装置 | |
US20200311248A1 (en) | Utilizing models to generate identifiers that identify and provide authentication for machine learning models | |
CN114281653B (zh) | 应用程序的监控方法、装置及计算设备 | |
CN110113406A (zh) | 基于分布式的计算服务集群框架 | |
CN109635993A (zh) | 基于预测模型的操作行为监控方法及装置 | |
CN104158857B (zh) | 一种提供网络化操作系统服务的装置和方法 | |
CN103995824A (zh) | 减缓服务器缓存压力的方法 | |
US20180007170A1 (en) | Context Switch of Database Connections | |
US20150379296A1 (en) | Large Scale Network System Upgrade |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 511449 Guangzhou City, Guangdong Province, Panyu District, South Village, Huambo Business District Wanda Plaza, block B1, floor 28 Applicant after: Guangzhou Huaduo Network Technology Co., Ltd. Address before: 510655, Guangzhou, Tianhe District, Whampoa Avenue, No. 309, creative park, building 3-08 Applicant before: Guangzhou Huaduo Network Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |