一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于Java技术的内存数据库及其实现方法与流程

2021-11-20 02:47:00 来源:中国专利 TAG:

基于java技术的内存数据库及其实现方法
技术领域
1.本发明涉及内存数据库实现,尤其涉及一种基于java技术的内存数据库及其实现方法。


背景技术:

2.内存数据库(in-memory database,imdb)是指那些完全用主存作为数据存储的数据库管理系统,由于节省下来磁盘的i/o开销,与基于磁盘的传统数据库管理系统而言效率要高很多。内存数据库非常适合在小规模数据中应用,以及在快速原型系统实现软件测试等场景中应用。
3.一般的内存数据库是以磁盘数据管理的传统方式实现的,多有关系型的数据库,但其性能扩展性不好,会增加查询代理的内存开销,系统灵活性不够。
4.因此,亟需提出一种新的技术方案来解决上述问题。


技术实现要素:

5.本发明的目的是解决现有技术中存在的问题,提供一种基于java技术的内存数据库实现方法,采用的技术方案是:
6.基于java技术的内存数据库实现方法,包括:
7.通过java技术设计出内存数据库程序,所述内存数据库将字符串存储在内存空间中,所述内存数据库具有多种数据控制功能,所述内存数据库还具有用户接口,
8.进一步的,用户于所述用户接口向内存数据库发起指令,所述内存数据库通过多种数据控制功能在系统中的各个应用程序中进行查询,
9.进一步的,所述内存数据库还具有虚拟内存空间,并将各个应用程序的数据内容均映射到所述虚拟内存空间中。
10.进一步的,所述内存数据库程序具有用于表示数据结构的数据模型,所述内存数据库将字符串和列表类型字符存储在内存空间内,所述内存数据库将所述列表类型字符进行散列储存。
11.进一步的,所述内存数据库将所述列表类型字符进行散列储存,包括:
12.对指定的预存储的字符串进行赋值,得到程序返回值;
13.对得到的程序返回值进行取值,获取所述预存储的字符串的所有域值。
14.进一步的,删除所述内存数据库中的字符串和/或列表类型字符,包括:
15.输入返回值,删除所述字符串和/或列表类型字符,所述返回值为被删除的字段个数。
16.进一步的,增加所述内存数据库中的字符串和/或列表类型字符,包括:
17.设置字符串和/或列表类型字符中域值的增量值,获取增加的字符串和/或列表类型字符。
18.进一步的,所述内存数据库通过控制访问模式获得各个应用程序的数据,并通过
所述数据对所述内存数据库进行优化。
19.进一步的,所述内存数据库具有的多种数据控制功能包括:并发控制功能、恢复功能、完整性功能和安全性功能;
20.进一步的,所述内存数据库中并发访问数据库的同步机制通过原子指令实现,减小查询占用的内存开销。
21.本发明还提供一种基于java技术的内存数据库,包括通过所述java 技术编程设计的内存数据库,所述内存数据库具有并发控制功能区、恢复功能区、完整性功能区和安全性功能区,
22.进一步的,所述内存数据库对字符串和/或列表类型字符进行存储、删除和增加;
23.进一步的,所述内存数据库具有与用户接口,用户通过所述用户接口与所述内存数据库数据交互。
24.与现有技术相比,本发明具有如下有益效果中的一个或多个:
25.1.本发明提供了基于java技术的内存数据库实现方法,所述的内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在10倍以上,且该内存数据库的最大特点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道;
26.2.本发明所述的内存数据库是基于键值型的内存数据库,该数据库比关系型的数据库更加易于使用,性能扩展性更好,因此在应用上比关系型内存数据库使用的更多;
27.3.本发明所述的数据库针对应用程序通过控制访问模式做了优化,通过降低数据传输的开销和非常有效的锁机制提供了高效查询,对于每一个使用数据库的应用,将数据内容映射到虚拟内存空间中,因此,查询在应用的上下文中执行而不是需要切换上下文以及数据传输,内存数据库中并发访问数据库的同步机制通过原子指令实现,几乎不增加查询的开销;
28.4.本发明所述的数据库采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享;
29.5.本发明所述的数据库具有较高的数据和程序独立性,数据库的独立性有物理独立性和逻辑独立性;
30.6.本发明所述的内存数据库为用户提供了方便的用户接口,且该内存数据库提供4个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性,数据库中各个应用程序所使用的数据由数据库统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制,增加了系统的灵活性。
具体实施方式
31.下面将结合本发明实施例,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等
术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
33.下面结合实施例进一步说明本发明要旨。
34.实施例:
35.针对现有技术中存在的问题,本发明提供一种基于java技术的内存数据库实现方法,包括:
36.通过java技术设计出内存数据库程序,所述内存数据库将字符串存储在内存空间中,所述内存数据库具有多种数据控制功能,所述内存数据库还具有用户接口,
37.进一步的,用户于所述用户接口向内存数据库发起指令,所述内存数据库通过多种数据控制功能在系统中的各个应用程序中进行查询,
38.进一步的,所述内存数据库还具有虚拟内存空间,并将各个应用程序的数据内容均映射到所述虚拟内存空间中。
39.进一步的,所述内存数据库程序具有用于表示数据结构的数据模型,所述内存数据库将字符串和列表类型字符存储在内存空间内,所述内存数据库将所述列表类型字符进行散列储存。
40.进一步的,所述内存数据库将所述列表类型字符进行散列储存,包括:
41.对指定的预存储的字符串进行赋值,得到程序返回值;
42.对得到的程序返回值进行取值,获取所述预存储的字符串的所有域值。
43.进一步的,删除所述内存数据库中的字符串和/或列表类型字符,包括:
44.输入返回值,删除所述字符串和/或列表类型字符,所述返回值为被删除的字段个数。
45.进一步的,增加所述内存数据库中的字符串和/或列表类型字符,包括:
46.设置字符串和/或列表类型字符中域值的增量值,获取增加的字符串和/或列表类型字符。
47.进一步的,所述内存数据库通过控制访问模式获得各个应用程序的数据,并通过所述数据对所述内存数据库进行优化。
48.进一步的,所述内存数据库具有的多种数据控制功能包括:并发控制功能、恢复功能、完整性功能和安全性功能;
49.进一步的,所述内存数据库中并发访问数据库的同步机制通过原子指令实现,减小查询占用的内存开销。
50.本发明还提供一种基于java技术的内存数据库,包括通过所述java 技术编程设计的内存数据库,所述内存数据库具有并发控制功能区、恢复功能区、完整性功能区和安全性功能区,
51.进一步的,所述内存数据库对字符串和/或列表类型字符进行存储、删除和增加;
52.进一步的,所述内存数据库具有与用户接口,用户通过所述用户接口与所述内存数据库数据交互。
53.本发明所述的基于java技术的内存数据库的实现方法的具体方案包括:
54.1、存储字符串
55.(1)set key value:设定key持有指定的字符串value,如果该key 存在则进行覆盖操作,总是返回ok。
56.(2)get key:获取key的value。如果与该key关联的value不是 string类型,将返回错误信息,因为get命令只能用于获取string value;如果该key不存在,返回null。
57.(3)getset key value:先获取该key的值,然后在设置该key的值。
58.(4)incr key:将指定的key的value原子性的递增1,如果该key 不存在,其初始值为0,在incr之后其值为1;如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息。
59.(5)decr key:将指定的key的value原子性的递减1,如果该key 不存在,其初始值为0,在incr之后其值为-1;如果value的值不能转成整型,如hello,该操作将执行失败并返回相应的错误信息。
60.(6)incrby key increment:将指定的key的value原子性增加 increment,如果该key不存在,器初始值为0,在incrby之后,该值为 increment;如果该值不能转成整型,如hello则失败并返回错误信息。
61.(7)decrby key decrement:将指定的key的value原子性减少 decrement,如果该key不存在,器初始值为0,在decrby之后,该值为 decrement;如果该值不能转成整型,如hello则失败并返回错误信息。
62.(8)append key value:如果该key存在,则在原有的value后追加该值;如果该key不存在,则重新创建一个key/value。
63.2、存储list类型
64.(1)lpush key value1 value2...:在指定的key所关联的list的头部插入所有的values,如果该key不存在,该命令在插入的之前创建一个与该key关联的空链表,之后再向该链表的头部插入数据,插入成功,返回元素的个数。
65.(2)rpush key value1、value2

:在该list的尾部添加元素。
66.(3)lrange key start end:获取链表中从start到end的元素的值,start、end可为负数,若为-1则表示链表尾部的元素,-2则表示倒数第二个,依次类推

67.(4)lpushx key value:仅当参数中指定的key存在时(如果与key 管理的list中没有值时,则该key是不存在的)在指定的key所关联的 list的头部插入value。
68.(5)rpushx key value:在该list的尾部添加元素。
69.(6)lpop key:返回并弹出指定的key关联的链表中的第一个元素,即头部元素。
70.(7)rpop key:从尾部弹出元素。
71.(8)rpoplpush resource destination:将链表中的尾部元素弹出并添加到头部。
72.(9)llen key:返回指定的key关联的链表中的元素的数量。
73.(10)lset key index value:设置链表中的index的脚标的元素值, 0代表链表的头元素,-1代表链表的尾元素。
74.3、存储hash
75.(1)赋值
76.hset key field value:为指定的key设定field/value对
77.hmset key field1 value1 field2 value2 field3 value3为指定的key设定多个field/value对。
78.(2)取值
79.hget key field:返回指定的key中的field的值;
80.hmget key field1 field2 field3:获取key中的多个field值;
81.hkeys key:获取所有的key;
82.hvals key:获取所有的value;
83.hgetall key:获取key中的所有field中的所有field-value。
84.(3)删除
85.hdel key field[field

]:可以删除一个或多个字段,返回是被删除的字段个数;
[0086]
del key:删除整个list。
[0087]
(4)增加数字
[0088]
hincrby key field increment:设置key中field的值增加 increment,如:age增加20hincrby myhash age 5。
[0089]
针对上述具体方案的部分实现代码如下:
[0090]
[0091]
[0092][0093]
本发明提供了基于java技术的内存数据库实现方法,所述的内存数据库抛弃了磁盘数据管理的传统方式,基于全部数据都在内存中重新设计了体系结构,并且在数据缓存、快速算法、并行操作方面也进行了相应的改进,所以数据处理速度比传统数据库的数据处理速度要快很多,一般都在 10倍以上,且该内存数据库的最大特点是其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。
[0094]
本发明所述的内存数据库是基于键值型的内存数据库,该数据库比关系型的数据库更加易于使用,性能扩展性更好。因此在应用上比关系型内存数据库使用的更多。
[0095]
本发明所述的数据库针对应用程序通过控制访问模式做了优化,通过降低数据传输的开销和非常有效的锁机制提供了高效查询,对于每一个使用数据库的应用,将数据内容映射到虚拟内存空间中,因此,查询在应用的上下文中执行而不是需要切换上下文以及数据传输,内存数据库中并发访问数据库的同步机制通过原子指令实现,几乎不增加查询的开销。
[0096]
本发明所述的数据库采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享。
[0097]
本发明所述的数据库具有较高的数据和程序独立性,数据库的独立性有物理独立性和逻辑独立性。
[0098]
本发明所述的内存数据库为用户提供了方便的用户接口,且该内存数据库提供4个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性,数据库中各个应用程序所使用的数据由数据库统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制,增加了系统的灵活性。
[0099]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。此外,本领域人员可以将本说明书中描述的不同实施例或示例进行接合和组合。
[0100]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献