CN112632031A - 分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质 - Google Patents
分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质 Download PDFInfo
- Publication number
- CN112632031A CN112632031A CN202011443567.8A CN202011443567A CN112632031A CN 112632031 A CN112632031 A CN 112632031A CN 202011443567 A CN202011443567 A CN 202011443567A CN 112632031 A CN112632031 A CN 112632031A
- Authority
- CN
- China
- Prior art keywords
- connection
- database
- memory
- class
- decorator
- 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 23
- 238000012545 processing Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000005034 decoration Methods 0.000 claims description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质,属于数据库应用技术领域,该方法为编写数据库连接类,且建立数据库连接类与内存数据库的连接;用装饰器装饰数据库连接类,使得数据库连接类与不同内存数据库建立的连接实例存储在装饰器内,或从装饰器直接获取已经存储的连接实例;在数据库连接类中设有线程模块,线程模块中的LOCK在执行数据库连接与一个内存数据库建立连接时上锁,执行完毕或异常释放锁。本发明在每次内存数据库连接之前加锁,避免并发请求导致之前建立的连接失效。
Description
技术领域
本发明属于数据库应用技术领域,特别涉及一种分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质。
背景技术
随着通讯技术的发展,电信行业也取得突飞猛进的发展,需要接入大量电信行业的数据来进行分析和处理,对数据采集平台提出了很高的要求,既要实现大量的实时数据快速采集,同时又要快速存储到数据库。现有的分布式内存数据库通过单例模式建立连接后,后续发起建立连接会获取之前已经建立的连接,达到长连接效果,此连接如果遇到执行内存数据库操作的并发请求,内存数据库连接将会失效。
发明内容
针对内存数据库通过单例模式建立连接后,若内存数据库遇到并发请求,则之前内存数据库连接将会失效的问题,本发明提供一种分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质。
一种分布式内存数据库长连接使用的实现方法包括:
编写数据库连接类,且建立所述数据库连接类与内存数据库的连接;
用装饰器装饰所述数据库连接类,使得所述数据库连接类与不同所述内存数据库建立的连接实例存储在所述装饰器内,或从所述装饰器直接获取已经存储的连接实例;
在所述数据库连接类中设有线程模块,所述线程模块中的LOCK在执行所述数据库连接类与一个所述内存数据库建立连接时上锁,执行完毕或异常释放锁。
优选的是,所述数据库连接类通过python驱动建立与所述内存数据库的连接。
优选的是,所述编写数据库连接类,且建立所述数据库连接类与内存数据库的连接的步骤包括:
定义数据库连接类,并将用户名称、用户密码、内存数据库名称参数传入所述数据库连接类中,与所述内存数据库建立连接。
优选的是,所述数据库连接类与不同所述内存数据库建立的连接实例存储在所述装饰器内,或从所述装饰器直接获取已经存储的连接实例的步骤包括:
当所述数据库连接类与所述内存数据库建立连接时,判断所述装饰器内是否存在与所述内存数据库连接时建立的连接实例;若不存在,则建立所述连接实例并存储在所述装饰器内;若存在,则直接调用所述连接实例。
优选的是,所述线程模块中的LOCK在执行所述数据库连接与一个所述内存数据库建立连接时上锁,执行完毕或异常释放锁的步骤为:
所述线程模块用于获取所述数据库连接类与所述内存数据库连接的任务,并建立所述内存数据库连接的队列任务,提取所述队列任务的首个数据库连接的任务并上锁。
本发明实施例提供的一种分布式内存数据库长连接使用的实现系统,用于实现上述所述的方法,包括:
数据库连接模块,用于建立所述数据库连接模块与内存数据库的连接;
装饰器,用于装饰所述数据库连接类,使得所述数据库连接类与不同所述内存数据库建立的连接实例存储在所述装饰器内,或从所述装饰器直接获取已经存储的连接实例;
线程模块,用于所述线程模块中的LOCK在执行所述数据库连接与一个所述内存数据库建立连接时上锁,执行完毕或异常释放锁。
本发明实施例提供的一种电子设备,包括至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行上述所述的方法。
本发明实施例提供的一种存储介质,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行上述所述的方法。
与现有技术相比,本发明的有益效果为:
本发明在建立内存数据库连接时使用单例模式,可以在全局中调用已经建立的连接实例,达到仅建立一个连接实例即可,且在每次内存数据库连接之前加锁,避免并发请求导致之前建立的连接失效。
附图说明
图1是本发明中分布式内存数据库长连接使用的实现系统结构示意图;
图2是本发明分布式内存数据库长连接使用的实现方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本发明的描述中,还需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
参照图1,是本申请实施例的分布式内存数据库长连接使用的实现系统的结构示意图,其包括:
数据库连接模块,用于建立数据库连接模块与内存数据库的连接;
具体地,用户编写数据库连接类,并将用户名称、用户密码、内存数据库名称参数传入数据库连接类中,与内存数据库建立连接,获取内存数据库游标,故调用数据库连接类后通过该内存数据库游标来对该内存数据库进行增删改查操作。
装饰器,用于装饰数据库连接类,使得数据库连接类与不同内存数据库建立的连接实例存储在装饰器内,或从装饰器直接获取已经存储的连接实例;
具体地,装饰器将数据库连接类装饰为单例模式,当数据库连接类与内存数据库建立连接时,判断装饰器内是否存在与内存数据库连接时建立的连接实例;若不存在,则建立连接实例并存储在装饰器内;若存在,则直接调用连接实例。
线程模块,用于线程模块中的LOCK在执行数据库连接与一个内存数据库建立连接时上锁,执行完毕或异常释放锁。
具体地,线程模块用于获取数据库连接类与内存数据库连接的任务,并建立内存数据库连接的队列任务,提取队列任务的首个数据库连接并上锁,即每次只能执行一个任务,避免并发请求导致之前建立的连接失效。
如图2所示,本实施例还提供一种分布式内存数据库长连接使用的实现方法,包括:
步骤1:编写数据库连接类,且建立数据库连接类与内存数据库的连接;
具体地,数据库连接类通过python驱动用于与内存数据库连接,定义数据库连接类,并将用户名称、用户密码、内存数据库名称参数传入数据库连接类中,与内存数据库建立连接,获取内存数据库游标,故调用数据库连接类后通过该内存数据库游标来对该内存数据库进行增删改查操作。
步骤2:用装饰器装饰数据库连接类,使得数据库连接类与不同内存数据库建立的连接实例存储在装饰器内,或从装饰器直接获取已经存储的连接实例;
具体地,装饰器将数据库连接类装饰为单例模式,当数据库连接类与内存数据库建立连接时,判断装饰器内是否存在与内存数据库连接时建立的连接实例;若不存在,则建立连接实例并存储在装饰器内;若存在,则直接调用连接实例。
步骤3:在数据库连接类中设有线程模块,线程模块中的LOCK在执行数据库连接与一个内存数据库建立连接时上锁,执行完毕或异常释放锁。
具体地,线程模块用于获取数据库连接类与内存数据库连接的任务,并建立内存数据库连接的队列任务,提取队列任务的首个数据库连接的任务并上锁,即每次只能执行一个任务,避免并发请求导致之前建立的连接失效。
通过上述方法,在内存数据库连接时,只能进行一个任务,避免了并发请求导致之前建立的连接失效。
本实施例还提供一种电子设备,包括至少一个处理单元以及至少一个存储单元,其中,存储单元存储有计算机程序,当程序被处理单元执行时,使得处理单元执行上述方法。
本实施例还提供一种存储介质,其存储有可由电子设备执行的计算机程序,当程序在电子设备上运行时,使得电子设备执行上述方法。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种分布式内存数据库长连接使用的实现方法,其特征在于,包括:
编写数据库连接类,且建立所述数据库连接类与内存数据库的连接;
用装饰器装饰所述数据库连接类,使得所述数据库连接类与不同所述内存数据库建立的连接实例存储在所述装饰器内,或从所述装饰器直接获取已经存储的连接实例;
在所述数据库连接类中设有线程模块,所述线程模块中的LOCK在执行所述数据库连接类与一个所述内存数据库建立连接时上锁,执行完毕或异常释放锁。
2.如权利要求1所述的分布式内存数据库长连接使用的实现方法,其特征在于,所述数据库连接类通过python驱动建立与所述内存数据库的连接。
3.如权利要求2所述的分布式内存数据库长连接使用的实现方法,其特征在于,所述编写数据库连接类,且建立所述数据库连接类与内存数据库的连接的步骤包括:
定义数据库连接类,并将用户名称、用户密码、内存数据库名称参数传入所述数据库连接类中,与所述内存数据库建立连接。
4.如权利要求1所述的分布式内存数据库长连接使用的实现方法,其特征在于,所述数据库连接类与不同所述内存数据库建立的连接实例存储在所述装饰器内,或从所述装饰器直接获取已经存储的连接实例的步骤包括:
当所述数据库连接类与所述内存数据库建立连接时,判断所述装饰器内是否存在与所述内存数据库连接时建立的连接实例;若不存在,则建立所述连接实例并存储在所述装饰器内;若存在,则直接调用所述连接实例。
5.如权利要求1所述的分布式内存数据库长连接使用的实现方法,其特征在于,所述线程模块中的LOCK在执行所述数据库连接与一个所述内存数据库建立连接时上锁,执行完毕或异常释放锁的步骤为:
所述线程模块用于获取所述数据库连接类与所述内存数据库连接的任务,并建立所述内存数据库连接的队列任务,提取所述队列任务的首个数据库连接的任务并上锁。
6.一种分布式内存数据库长连接使用的实现系统,其特征在于,用于实现权利要求1~5中任一权利要求所述的方法,包括:
数据库连接模块,用于建立所述数据库连接模块与内存数据库的连接;
装饰器,用于装饰所述数据库连接类,使得所述数据库连接类与不同所述内存数据库建立的连接实例存储在所述装饰器内,或从所述装饰器直接获取已经存储的连接实例;
线程模块,用于所述线程模块中的LOCK在执行所述数据库连接与一个所述内存数据库建立连接时上锁,执行完毕或异常释放锁。
7.一种电子设备,其特征在于,包括至少一个处理单元以及至少一个存储单元,其中,所述存储单元存储有计算机程序,当所述程序被所述处理单元执行时,使得所述处理单元执行权利要求1~5任一权利要求所述的方法。
8.一种存储介质,其特征在于,其存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行权利要求1~5任一权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011443567.8A CN112632031A (zh) | 2020-12-08 | 2020-12-08 | 分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011443567.8A CN112632031A (zh) | 2020-12-08 | 2020-12-08 | 分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112632031A true CN112632031A (zh) | 2021-04-09 |
Family
ID=75309538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011443567.8A Pending CN112632031A (zh) | 2020-12-08 | 2020-12-08 | 分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632031A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138630A (zh) * | 2021-11-10 | 2022-03-04 | 浪潮卓数大数据产业发展有限公司 | 一种基于es6装饰器的埋点数据收集方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库系统 |
CN106170016A (zh) * | 2016-07-28 | 2016-11-30 | 深圳市创梦天地科技有限公司 | 一种处理高并发数据请求的方法和系统 |
CN106572054A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 分布式系统中分布式锁服务实现方法以及装置 |
CN108833131A (zh) * | 2018-04-25 | 2018-11-16 | 北京百度网讯科技有限公司 | 分布式数据库云服务的系统、方法、设备和计算机存储介质 |
CN109033359A (zh) * | 2018-07-26 | 2018-12-18 | 北京天地和兴科技有限公司 | 一种多进程安全访问sqlite的方法 |
CN109376165A (zh) * | 2018-11-14 | 2019-02-22 | 深圳市金证科技股份有限公司 | 内存数据库锁的实现方法和装置及计算机可读存储介质 |
CN112015713A (zh) * | 2019-05-30 | 2020-12-01 | 阿里巴巴集团控股有限公司 | 数据库任务的处理方法、装置、电子设备及可读介质 |
-
2020
- 2020-12-08 CN CN202011443567.8A patent/CN112632031A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1740978A (zh) * | 2004-08-23 | 2006-03-01 | 华为技术有限公司 | 实现共享内存数据库的方法及内存数据库系统 |
CN106572054A (zh) * | 2015-10-09 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 分布式系统中分布式锁服务实现方法以及装置 |
CN106170016A (zh) * | 2016-07-28 | 2016-11-30 | 深圳市创梦天地科技有限公司 | 一种处理高并发数据请求的方法和系统 |
CN108833131A (zh) * | 2018-04-25 | 2018-11-16 | 北京百度网讯科技有限公司 | 分布式数据库云服务的系统、方法、设备和计算机存储介质 |
CN109033359A (zh) * | 2018-07-26 | 2018-12-18 | 北京天地和兴科技有限公司 | 一种多进程安全访问sqlite的方法 |
CN109376165A (zh) * | 2018-11-14 | 2019-02-22 | 深圳市金证科技股份有限公司 | 内存数据库锁的实现方法和装置及计算机可读存储介质 |
CN112015713A (zh) * | 2019-05-30 | 2020-12-01 | 阿里巴巴集团控股有限公司 | 数据库任务的处理方法、装置、电子设备及可读介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138630A (zh) * | 2021-11-10 | 2022-03-04 | 浪潮卓数大数据产业发展有限公司 | 一种基于es6装饰器的埋点数据收集方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8806437B2 (en) | Automated testing process | |
WO2017063520A1 (zh) | 数据库的操作方法及装置 | |
WO2016184175A1 (zh) | 数据库处理方法及装置 | |
CN111198769A (zh) | 信息处理方法及其系统、计算机系统及计算机可读介质 | |
CN109240259B (zh) | 车辆诊断方法、装置、设备及存储介质 | |
CN108037984B (zh) | 数据分析的资源管理方法、系统以及可读存储介质 | |
US8924947B2 (en) | Direct deployment of static content | |
CN112632031A (zh) | 分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质 | |
CN114090113B (zh) | 数据源处理插件动态加载的方法、装置、设备及存储介质 | |
CN111694734A (zh) | 软件接口校验方法、装置及计算机设备 | |
CN113590433B (zh) | 数据管理方法、数据管理系统和计算机可读存储介质 | |
CN107092556B (zh) | 测试方法、装置及设备 | |
CN117171108A (zh) | 一种虚拟模型映射方法和系统 | |
CN107506474B (zh) | 基于对象映射的数据库操作方法及装置 | |
KR100797548B1 (ko) | 데이터베이스의 장애 및 성능 모니터링 방법, 및 그 방법을구현하기 위한 시스템 | |
CN113641628B (zh) | 数据质量检测方法、装置、设备及存储介质 | |
CN107632893B (zh) | 消息队列处理方法及装置 | |
CN110389966B (zh) | 一种信息处理方法及装置 | |
CN114020350B (zh) | 一种基于安卓系统的终端外载设备检测方法、系统及介质 | |
CN111078660A (zh) | 一种云数据库性能安全监控方法 | |
US20080022372A1 (en) | User authority management system and method for managing users | |
CN114416027A (zh) | 一种软件低代码开发系统及方法 | |
CN111324472B (zh) | 对待检测信息作垃圾项目判断的方法和装置 | |
CN118012927A (zh) | 一种根据渠道号设置接口访问权限的方法 | |
KR100461353B1 (ko) | 데이터베이스 연결 풀을 이용한 통합망관리 게이트웨이시스템 및 그 운용방법 |
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 |