CN110659309A - 内存数据库通信方法、装置、服务器以及存储介质 - Google Patents
内存数据库通信方法、装置、服务器以及存储介质 Download PDFInfo
- Publication number
- CN110659309A CN110659309A CN201910906177.0A CN201910906177A CN110659309A CN 110659309 A CN110659309 A CN 110659309A CN 201910906177 A CN201910906177 A CN 201910906177A CN 110659309 A CN110659309 A CN 110659309A
- Authority
- CN
- China
- Prior art keywords
- memory database
- server
- client
- socket connection
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000006854 communication Effects 0.000 title claims abstract description 48
- 238000004891 communication Methods 0.000 title claims abstract description 47
- 230000004044 response Effects 0.000 claims abstract description 16
- 238000012986 modification Methods 0.000 claims description 16
- 230000004048 modification Effects 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 claims description 5
- 230000000903 blocking effect Effects 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 4
- 230000037430 deletion Effects 0.000 claims description 4
- 238000013515 script Methods 0.000 abstract description 12
- 230000008569 process Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
-
- 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/25—Integrating or interfacing systems involving database management systems
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种内存数据库通信方法、装置、服务器以及存储介质,部署有内存数据库的服务器在获取与其服务器建立Socket连接的客户端发送的内存数据库操作指令之后,响应于所述内存数据库操作指令,生成操作结果;并将所述操作结果通过所述Socket连接反馈给所述客户端。在本发明的方案中,所述内存数据库与所述客户端是基于同一脚本语言开发的,所述内存数据库使用脚本语言内置的数据结构来进行数据存取管理,从而减少额外组件的依赖并最大限度降低个性化定制的门槛。
Description
技术领域
本发明涉及数据处理技术领域,更具体的说,是涉及一种内存数据库通信方法、装置、服务器以及存储介质。
背景技术
脚本语言(PHP、Python、Perl、NodeJS等)是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。通过脚本语言可以编写程序实现应用的开发。在通过脚本语言开发应用的过程中,基于功能隔离、进程安全、进程保活等考虑,经常需要为应用划分进程,但是,一份应用数据,各个进程都需要读取、更新使用,因此,进程之间需要共享数据。
现有技术中,实现进程之间共享数据的一种方式是基于Redis、Memcached等内存数据库,但是,该方式至少存在如下两个问题:
第一,Redis、Memcached等内存数据库虽然性能强大,功能完善,但是需要部署一套内存数据库组件。在很多实际情况下应用只需要基本的键值对的存取,数据量级较小,在应用之外单独安装部署一套内存数据库组件显得臃肿。
第二,Redis、Memcached等内存数据库是使用C/C++开发,个性化定制门槛较高,而且更新之后需要重新编译和部署,灵活性和便携性都较差。
因此,在通过脚本语言开发应用的过程中实现进程之间共享数据时,如何减少额外组件的依赖并最大限度降低个性化定制的门槛,成为本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本发明提供了一种内存数据库通信方法、装置、服务器以及存储介质,以在在通过脚本语言开发应用的过程中实现进程之间共享数据时,减少额外组件的依赖并最大限度降低个性化定制的门槛。
为实现上述目的,一方面,本发明提供了一种内存数据库通信方法,应用于部署有内存数据库的服务器,所述方法包括:
获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令;其中,所述内存数据库与所述客户端是基于目标脚本语言开发的,所述内存数据库使用所述目标脚本语言内置的数据结构来进行数据存取管理;
响应于所述内存数据库操作指令,生成操作结果;
将所述操作结果通过所述Socket连接反馈给所述客户端。
又一方面,本发明还提供了一种内存数据库通信装置,应用于部署有内存数据库的服务器,所述装置包括:
获取单元,用于获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令;其中,所述内存数据库与所述客户端是基于目标脚本语言开发的,所述内存数据库使用所述目标脚本语言内置的数据结构来进行数据存取管理;
响应单元,用于响应于所述内存数据库操作指令,生成操作结果;
反馈单元,用于将所述操作结果通过所述Socket连接反馈给所述客户端。
又一方面,本发明还提供了一种服务器,所述服务器上部署有内存数据库,包括:
处理器和存储器;
其中,所述处理器用于执行所述存储器中存储的程序;
所述存储器用于存储程序,所述程序至少用于:
获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令;其中,所述内存数据库与所述客户端是基于目标脚本语言开发的,所述内存数据库使用所述目标脚本语言内置的数据结构来进行数据存取管理;
响应于所述内存数据库操作指令,生成操作结果;
将所述操作结果通过所述Socket连接反馈给所述客户端。
又一方面,本发明还提供了一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上所述的内存数据库通信方法。
经由上述的技术方案可知,与现有技术相比,本发明提供了一种内存数据库通信方法、装置、服务器以及存储介质,部署有内存数据库的服务器在获取与其服务器建立Socket连接的客户端发送的内存数据库操作指令之后,响应于所述内存数据库操作指令,生成操作结果;并将所述操作结果通过所述Socket连接反馈给所述客户端。在本发明的方案中,所述内存数据库与所述客户端是基于同一脚本语言开发的,所述内存数据库使用脚本语言内置的数据结构来进行数据存取管理,从而减少额外组件的依赖并最大限度降低个性化定制的门槛。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种内存数据库通信系统一种组成架构示意图;
图2为本发明实施例提供的一种内存数据库通信方法一种适用场景示意图;
图3为本发明实施例提供的一种服务器的一种组成结构示意图;
图4为本发明实施例提供的一种内存数据库通信方法的信令流程图;
图5为本发明实施例提供的一种内存数据库通信方法的流程图
图6为本发明实施例提供的又一种内存数据库通信方法的流程图;
图7为本发明实施例提供的又一种内存数据库通信方法的流程图;
图8为本发明实施例提供的一种内存数据库通信装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解,先对本发明的方案所适用的系统的组成架构进行介绍。如,参见图1,其示出了本发明的一种内存数据库通信系统一种组成架构示意图。
由图1可知,该内存数据库通信系统包括客户端10、网络11和服务器12。网络11用以在客户端10和服务器12之间提供通信链路的介质。网络11可以包括各种连接类型,例如,有线、无线通信链路或者光纤电缆等。
客户端10通过网络11与服务器12进行交互,以接收或发送消息等,比如,在客户端10与服务器12之间建立Socket连接,发送内存数据库操作指令、接收内存数据库操作结果等。
客户端10可以是硬件,也可以是软件。当客户端10为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、膝上型便携计算机、台式计算机等电子设备。当客户端10为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。本发明实施例对电子设备的具体类型不作任何限制。
服务器12可以是提供各种服务的服务器,例如对客户端10提供数据存储支持的后台服务器,客户端与服务器建立Socket连接,后台服务器可以响应于获取到的客户端发送的内存数据库操作指令,并对内存数据库进行操作,得到操作结果,并返回该才做结果给终端设备。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本发明实施例所提供的内存数据库通信方法一般由服务器12执行,相应地,内存数据库通信装置一般设置于服务器12中。
应该理解,图1中的客户端、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
基于图1所示的内存数据库通信系统,图2示出了本发明的一种内存数据库通信方法一种适用场景示意图。
由图2可知,本发明的内存数据库通信方法主要用于使用脚本语言(PHP、Python、Perl、NodeJS等)开发应用程序的场景,内存数据库使用和应用程序相同的脚本语言开发。由于内存数据库使用和应用程序相同的脚本语言开发的,因此,内存数据库依赖的只是代码文件,所有依赖都被脚本语言的解析引擎所屏蔽,而脚本语言的解析引擎和应用程序共享,所以可以认为没有任何额外依赖。
在应用程序开发过程中,其与内存数据库都在上述脚本语言的解析引擎(也称虚拟机)上运行。承载应用程序开发过程的电子设备可以作为客户端,部署有内存数据库的电子设备可以作为服务器,需要说明的是,承载应用程序开发过程的电子设备与部署有内存数据库的电子设备可以相同也可以不同。在本发明中,电子设备,包括但不限于智能手机、平板电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、膝上型便携计算机、台式计算机、服务器等电子设备。
为了便于理解客户端和服务器的硬件构成,下面以服务器为例进行介绍。如,参见图3,其示出了本发明的服务器的一种组成结构示意图,本实施例的应用服务器300可以包括:处理器301、存储器302、通信接口303、输入单元304和显示器305和通信总线306。
处理器301、存储器302、通信接口303、输入单元304、显示器305、均通过通信总线306完成相互间的通信。
在本发明实施例中,该处理器301,可以为中央处理器(Central ProcessingUnit,CPU),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。
该处理器可以调用存储器302中存储的程序。具体的,处理器可以执行以下消息发送方法的实施例中服务器侧所执行的操作。
存储器302中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本发明实施例中,该存储器中至少存储有用于实现以下功能的程序:
获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令;其中,所述内存数据库与所述客户端是基于目标脚本语言开发的,所述内存数据库使用所述目标脚本语言内置的数据结构来进行数据存取管理;
响应于所述内存数据库操作指令,生成操作结果;
将所述操作结果通过所述Socket连接反馈给所述客户端。
在一种可能的实现方式中,该存储器302可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如声音播放功能、图像播放功能等)所需的应用程序等;存储数据区可存储根据计算机的使用过程中所创建的数据,比如,用户数据、用户访问数据以及音频数据等等。
此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
该通信接口303可以为通信模块的接口,如GSM模块的接口。
本发明还可以包括显示器304和输入单元305等等。
当然,图3所示的服务器的结构并不构成对本发明实施例中服务器的限定,在实际应用中服务器可以包括比图3所示的更多或更少的部件,或者组合某些部件。
可以理解的是,客户端与服务器的硬件组成相似,不同之处仅在于客户端中处理器执行的操作,以及存储器中存储的程序不同。
基于以上共性,图4示出了本发明实施例提供的内存数据库通信方法的信令流程图,参照图4,该流程可以包括:
S401:与所述服务器建立Socket连接的客户端发送内存数据库操作指令。
其中,所述内存数据库与所述客户端是基于目标脚本语言开发的,所述内存数据库使用所述目标脚本语言内置的数据结构来进行数据存取管理。在本发明中,目标脚本语言可以为PHP、Python、Perl、NodeJS等脚本语言中的任意一种。目标脚本语言内置的数据结构可以为脚本语言自带的Map/Hash/关联数组等数据结构。内存数据库操作指令可以为多种形式,包括基本的数据操作指令,比如,数据增删改查指令(写数据SET{key}{value},读数据GET{key}等),也可以为不同的应用场景下的特定指令,比如,在公司的海外项目中,需要将海外特性数据跨公网上报回公司的数据服务器,则内存数据库操作指令可以为数据上报指令。
S402:服务器获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令。
在本发明中,服务器可以通过对Socket连接或TCP(Transmission ControlProtocol传输控制协议)连接进行监听的方式,获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令。
S403:服务器响应于所述内存数据库操作指令,生成操作结果。
在本发明中,服务器获取的内存数据库操作指令不同,所作出的响应也不同,生成的操作结果也不同。
S404:服务器将所述操作结果通过所述Socket连接反馈给所述客户端。
在本发明中,可以将所述操作结果写入所述Socket,实现操作结果的反馈。
S405:与所述服务器建立Socket连接的客户端通过所述Socket连接获取所述操作结果。
本实施例提供了一种内存数据库通信方法,部署有内存数据库的服务器在获取与其服务器建立Socket连接的客户端发送的内存数据库操作指令之后,响应于所述内存数据库操作指令,生成操作结果;并将所述操作结果通过所述Socket连接反馈给所述客户端。在本发明的方案中,所述内存数据库与所述客户端是基于同一脚本语言开发的,所述内存数据库使用脚本语言内置的数据结构来进行数据存取管理,从而减少额外组件的依赖并最大限度降低个性化定制的门槛。
下面以服务器的角度,对本发明实施例提供的内存数据库通信方法进行介绍。
图5为本发明实施例提供的一种内存数据库通信方法的流程图,该方法可应用于部署有内存数据库的服务器,参照图5,所述方法可以包括:
S501:获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令。
其中,所述内存数据库与所述客户端是基于目标脚本语言开发的,所述内存数据库使用所述目标脚本语言内置的数据结构来进行数据存取管理;本发明中,目标脚本语言可以为PHP、Python、Perl、NodeJS等脚本语言中的任意一种。目标脚本语言内置的数据结构可以为脚本语言自带的Map/Hash/关联数组等数据结构。内存数据库操作指令可以为多种形式。
S502:响应于所述内存数据库操作指令,生成操作结果。
在本发明中,服务器获取的内存数据库操作指令不同,所作出的响应也不同,生成的操作结果也不同。
S503:将所述操作结果通过所述Socket连接反馈给所述客户端。
在本发明中,可以将所述操作结果写入所述Socket,实现操作结果的反馈。
需要说明的是,内存数据库操作指令可以为多种形式,包括基本的数据操作指令,比如,数据增删改查指令,也可以为不同的应用场景下的特定指令,比如,在公司的海外项目中,需要将海外特性数据跨公网上报回公司的数据服务器,则内存数据库操作指令可以为数据上报指令。在本发明中,服务器可以通过对Socket连接或TCP(TransmissionControl Protocol传输控制协议)连接进行监听的方式,获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令。下面,基于不同形式的内存数据库操作指令,通过不同的实施例对内存数据库通信方法进行详细介绍。
图6为本发明实施例提供的又一种内存数据库通信方法的流程图,该方法可应用于部署有内存数据库的服务器,参照图6,所述方法可以包括:
S601:获取与所述服务器建立Socket连接的客户端发送的数据增和/或删和/或改和/或查指令。
S602:响应于所述内存数据库操作指令,对所述内存数据库中进行数据增和/或删和/或改和/或查操作,生成操作结果。
S603:将所述操作结果通过所述Socket连接反馈给所述客户端。
本发明实施例中,服务器在获取与所述服务器建立Socket连接的客户端发送的数据增和/或删和/或改和/或查指令,之后,响应于所述内存数据库操作指令,对所述内存数据库中进行数据增和/或删和/或改和/或查操作,生成操作结果,并将所述操作结果通过所述Socket连接反馈给所述客户端。基于该方法,可以看出,本发明中基于脚本语言开发的内存数据库具备一般数据库所通用的数据操作功能。
图7为本发明实施例提供的又一种内存数据库通信方法的流程图,该方法可应用于部署有内存数据库的服务器,参照图7,所述方法可以包括:
S701:获取与所述服务器建立Socket连接的客户端发送的数据上报指令,所述数据上报指令中包括所述客户端提交的目标数据以及上报策略。
需要说明的是,上报策略可以为立即上报、定时上报,接收到特定数据之后上报等。对此,本发明不进行任何限定。
S702:响应于所述数据上报指令,将所述目标数据存储至所述内存数据库,并基于所述上报策略将所述目标数据进行上报,生成操作结果。
在本发明中,操作结果具体可以为所述数据上报指令的执行结果信息,比如,目标数据上报成功、目标数据上报失败等。
S703:将所述操作结果通过所述Socket连接反馈给所述客户端。
S704:清空所述内存数据库中存储的所述目标数据。
为了对内存数据库的空间进行高效利用,在所述基于所述上报策略将所述目标数据进行上报之后,还可清空所述内存数据库中存储的目标数据。
本发明实施例中,服务器获取与所述服务器建立Socket连接的客户端发送的数据上报指令,所述数据上报指令中包括所述客户端提交的目标数据以及上报策略之后,响应于所述数据上报指令,将所述目标数据存储至所述内存数据库,并基于所述上报策略将所述目标数据进行上报,生成操作结果,并将所述操作结果通过所述Socket连接反馈给所述客户端,以及,清空所述内存数据库中存储的所述目标数据。基于该方法,可以看出,本发明中基于脚本语言开发的内存数据库具备数据上报、数据清空等定制化功能。
需要说明的是,图7所示的实施例可应用于如下场景:
在公司的海外项目中,需要将海外特性数据跨公网上报回公司的数据Server,需要上报的数据较多,为了提高性能,使用了该内存数据库,该数据库除了接收应用提交的数据还会定时将收集到的数据上报到公司Server,同时会清空数据。
在本发明提供的内存数据库通信方法的各个实施例的一些可选的实现方式中,所述服务器与所述客户端建立的Socket连接的模式为非阻塞模式,具体的,可将内存数据库的主程序中的SOCK_NONBLOCK设置为非阻塞模式,则所述获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令,包括:基于多路复用技术接收与所述服务器建立Socket连接的客户端发送的内存数据库操作指令。
需要说明的是,多路复用技术可以为elect/poll/epoll等多路复用技术
作为一种可实施方式,多路复用的一种实现方式可以为:
监听与所述服务器建立的多个Socket连接的状态;
获取与所述服务器建立的Socket连接的状态为可读状态的多个客户端发送的内存数据库操作指令。
在本发明中,服务器基于多路复用技术接收与所述服务器建立Socket连接的客户端发送的内存数据库操作指令,可以同时处理多个客户端的内存数据库操作指令,使得内存数据库具备并发处理能力,能够适用于更多场景。
需要说明的是,随着内存数据库的使用,开发人员可能会对内存数据库的实现方式进行更新,但是,可能实际采用的实现方式并不是最新的实现方式,为保证内存数据库的使用过程中能够尽早采用最新的实现方式,本发明实施例还提供了如下解决方案:
在本发明提供的内存数据库通信方法的各个实施例的一些可选的实现方式中,在内存数据库通信过程中,所述方法还包括:
判断是否达到预设的热更新检测时机;
如果是,则获取热更新文件的修改时间以及热更新文件的载入时间;
如果所述热更新文件的修改时间晚于所述热更新文件的载入时间,则重新载入所述热更新文件,并将所述热更新文件的载入时间更新为所述热更新文件的修改时间,同时将所述预设计数变量的赋值清零。
作为一种可实施方式,所述判断是否达到预设的热更新检测时机,包括:
在所述响应于所述内存数据库操作指令,生成操作结果之后,获取预设计数变量的赋值;
将所述预设计数变量的赋值加一得到当前赋值;
判断所述当前赋值是否为预设阈值;
如果是,则确定达到预设的热更新检测时机。
另外,还可以采用其他方式,比如,预设检测周期,接收到检测指令后检测等方式实现判断是否达到预设的热更新检测时机。
下面对本发明实施例提供的内存数据库通信装置进行介绍,下文描述的内存数据库通信装置可与内存数据库通信方法相互对应参照。
图8为本发明实施例提供的一种内存数据库通信装置的结构框图,参照图8,该装置可以包括:
获取单元81,用于获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令;其中,所述内存数据库与所述客户端是基于目标脚本语言开发的,所述内存数据库使用所述目标脚本语言内置的数据结构来进行数据存取管理;
响应单元82,用于响应于所述内存数据库操作指令,生成操作结果;
反馈单元83,用于将所述操作结果通过所述Socket连接反馈给所述客户端。
在本实施例的一些可选的实现方式中,所述获取单元,具体用于:
获取与所述服务器建立Socket连接的客户端发送的数据增和/或删和/或改和/或查指令;
所述响应单元,具体用于:
响应于所述内存数据库操作指令,对所述内存数据库中进行数据增和/或删和/或改和/或查操作,生成操作结果。
在本实施例的一些可选的实现方式中,所述获取单元,具体用于:
获取与所述服务器建立Socket连接的客户端发送的数据上报指令,所述数据上报指令中包括所述客户端提交的目标数据以及上报策略;
所述响应单元,具体用于:
响应于所述数据上报指令,将所述目标数据存储至所述内存数据库,并基于所述上报策略将所述目标数据进行上报,生成操作结果。
在本实施例的一些可选的实现方式中,所述装置还包括:
清空单元,用于在所述基于所述上报策略将所述目标数据进行上报之后,清空所述内存数据库中存储的所述目标数据。
在本实施例的一些可选的实现方式中,所述服务器与所述客户端建立的Socket连接的模式为非阻塞模式,则所述获取单元,具体用于:
基于多路复用技术接收与所述服务器建立Socket连接的客户端发送的内存数据库操作指令。
在本实施例的一些可选的实现方式中,所述装置还包括:
热更新单元,用于判断是否达到预设的热更新检测时机;如果是,则获取热更新文件的修改时间以及热更新文件的载入时间;如果所述热更新文件的修改时间晚于所述热更新文件的载入时间,则重新载入所述热更新文件,并将所述热更新文件的载入时间更新为所述热更新文件的修改时间,同时将所述预设计数变量的赋值清零。
在本实施例的一些可选的实现方式中,所述热更新单元具体用于:
在所述响应于所述内存数据库操作指令,生成操作结果之后,获取预设计数变量的赋值;
将所述预设计数变量的赋值加一得到当前赋值;
判断所述当前赋值是否为预设阈值;
如果是,则确定达到预设的热更新检测时机。
需要说明的是,上述各个单元的具体功能实现已在上述实施例中详细描述,本实施例不再赘述。
另一方面,本发明实施例还提供了一种存储介质,所述存储介质为计算机可读存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上任意一个实施例中服务器执行的内存数据库通信方法。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种内存数据库通信方法,其特征在于,应用于部署有内存数据库的服务器,所述方法包括:
获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令;其中,所述内存数据库与所述客户端是基于目标脚本语言开发的,所述内存数据库使用所述目标脚本语言内置的数据结构来进行数据存取管理;
响应于所述内存数据库操作指令,生成操作结果;
将所述操作结果通过所述Socket连接反馈给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令,包括:
获取与所述服务器建立Socket连接的客户端发送的数据增和/或删和/或改和/或查指令;
所述响应于所述内存数据库操作指令,生成操作结果,包括:
响应于所述内存数据库操作指令,对所述内存数据库中进行数据增和/或删和/或改和/或查操作,生成操作结果。
3.根据权利要求1所述的方法,其特征在于,所述获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令,包括:
获取与所述服务器建立Socket连接的客户端发送的数据上报指令,所述数据上报指令中包括所述客户端提交的目标数据以及上报策略;
所述响应于所述内存数据库操作指令,生成操作结果,包括:
响应于所述数据上报指令,将所述目标数据存储至所述内存数据库,并基于所述上报策略将所述目标数据进行上报,生成操作结果。
4.根据权利要求3所述的方法,在所述基于所述上报策略将所述目标数据进行上报之后,所述方法还包括:
清空所述内存数据库中存储的所述目标数据。
5.根据权利要求1所述的方法,其特征在于,所述服务器与所述客户端建立的Socket连接的模式为非阻塞模式,则所述获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令,包括:
基于多路复用技术接收与所述服务器建立Socket连接的客户端发送的内存数据库操作指令。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
判断是否达到预设的热更新检测时机;
如果是,则获取热更新文件的修改时间以及热更新文件的载入时间;
如果所述热更新文件的修改时间晚于所述热更新文件的载入时间,则重新载入所述热更新文件,并将所述热更新文件的载入时间更新为所述热更新文件的修改时间,同时将所述预设计数变量的赋值清零。
7.根据权利要求6所述的方法,其特征在于,所述判断是否达到预设的热更新检测时机,包括:
在所述响应于所述内存数据库操作指令,生成操作结果之后,获取预设计数变量的赋值;
将所述预设计数变量的赋值加一得到当前赋值;
判断所述当前赋值是否为预设阈值;
如果是,则确定达到预设的热更新检测时机。
8.一种内存数据库通信装置,其特征在于,应用于部署有内存数据库的服务器,所述装置包括:
获取单元,用于获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令;其中,所述内存数据库与所述客户端是基于目标脚本语言开发的,所述内存数据库使用所述目标脚本语言内置的数据结构来进行数据存取管理;
响应单元,用于响应于所述内存数据库操作指令,生成操作结果;
反馈单元,用于将所述操作结果通过所述Socket连接反馈给所述客户端。
9.一种服务器,其特征在于,所述服务器上部署有内存数据库,包括:
处理器和存储器;
其中,所述处理器用于执行所述存储器中存储的程序;
所述存储器用于存储程序,所述程序至少用于:
获取与所述服务器建立Socket连接的客户端发送的内存数据库操作指令;其中,所述内存数据库与所述客户端是基于目标脚本语言开发的,所述内存数据库使用所述目标脚本语言内置的数据结构来进行数据存取管理;
响应于所述内存数据库操作指令,生成操作结果;
将所述操作结果通过所述Socket连接反馈给所述客户端。
10.一种存储介质,其特征在于,所述存储介质为计算机可读存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上权利要求1至7任一项所述的内存数据库通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910906177.0A CN110659309A (zh) | 2019-09-24 | 2019-09-24 | 内存数据库通信方法、装置、服务器以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910906177.0A CN110659309A (zh) | 2019-09-24 | 2019-09-24 | 内存数据库通信方法、装置、服务器以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110659309A true CN110659309A (zh) | 2020-01-07 |
Family
ID=69038927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910906177.0A Pending CN110659309A (zh) | 2019-09-24 | 2019-09-24 | 内存数据库通信方法、装置、服务器以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110659309A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860636A (zh) * | 2021-01-18 | 2021-05-28 | 北京金山云网络技术有限公司 | 操作数据的存储方法和装置、电子设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140280509A1 (en) * | 2013-03-15 | 2014-09-18 | Sencha, Inc. | Offloading execution of a portion of a client-side web application to a server |
CN107005453A (zh) * | 2014-06-13 | 2017-08-01 | Abb瑞士股份有限公司 | 用于工业装置的安全双向通信的方法和系统 |
CN108073389A (zh) * | 2017-12-11 | 2018-05-25 | 长沙海米网络技术有限公司 | 一种基于脚本语言的引擎系统 |
CN109977099A (zh) * | 2019-03-16 | 2019-07-05 | 平安城市建设科技(深圳)有限公司 | 数据库部署方法、用户设备、存储介质及装置 |
-
2019
- 2019-09-24 CN CN201910906177.0A patent/CN110659309A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140280509A1 (en) * | 2013-03-15 | 2014-09-18 | Sencha, Inc. | Offloading execution of a portion of a client-side web application to a server |
CN107005453A (zh) * | 2014-06-13 | 2017-08-01 | Abb瑞士股份有限公司 | 用于工业装置的安全双向通信的方法和系统 |
CN108073389A (zh) * | 2017-12-11 | 2018-05-25 | 长沙海米网络技术有限公司 | 一种基于脚本语言的引擎系统 |
CN109977099A (zh) * | 2019-03-16 | 2019-07-05 | 平安城市建设科技(深圳)有限公司 | 数据库部署方法、用户设备、存储介质及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860636A (zh) * | 2021-01-18 | 2021-05-28 | 北京金山云网络技术有限公司 | 操作数据的存储方法和装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110221872B (zh) | 页面跳转方法、装置、电子设备和存储介质 | |
CN112000348A (zh) | 服务灰度发布的控制方法、装置、计算机设备 | |
CN109391509A (zh) | 一种更新应用程序的方法、系统及应用服务器 | |
CN105988846B (zh) | 页面加载方法及页面加载装置 | |
CN108268346B (zh) | 数据备份方法、装置、设备及存储介质 | |
CN112714158B (zh) | 事务处理方法、中继网络、跨链网关、系统、介质和设备 | |
CN111399756A (zh) | 一种数据存储方法、数据下载方法及装置 | |
WO2022222438A1 (zh) | 配置文件状态同步方法、装置、终端、服务器和存储介质 | |
CN114615340B (zh) | 一种请求处理方法、装置、计算机设备和存储装置 | |
US20200153889A1 (en) | Method for uploading and downloading file, and server for executing the same | |
CN104573497A (zh) | 一种启动项的处理方法和装置 | |
CN111694639B (zh) | 进程容器地址的更新方法、装置和电子设备 | |
CN111885184A (zh) | 高并发场景下热点访问关键字处理方法和装置 | |
CN111949314A (zh) | 应用安装包的生成方法、装置、服务器和存储介质 | |
CN111240892A (zh) | 数据备份方法及装置 | |
CN110989934B (zh) | 区块链节点数据存储方法、区块链系统及区块链节点 | |
CN110659309A (zh) | 内存数据库通信方法、装置、服务器以及存储介质 | |
CN107239303B (zh) | 应用程序更新包生成及应用程序更新的方法、装置 | |
CN109375946B (zh) | 一种管理节点包管理器的组件包的方法及系统 | |
CN108600255B (zh) | Mock服务管理方法、装置、计算机设备以及存储介质 | |
CN111953718A (zh) | 一种页面调试方法和装置 | |
CN114115941A (zh) | 资源发送方法、页面渲染方法、装置、电子设备和介质 | |
CN113157348A (zh) | 游戏启动方法、装置、计算机设备以及存储介质 | |
CN111158654A (zh) | 算法调用方法、装置、服务器及存储介质 | |
CN113315801B (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 |