一种基于redis的数据快速查询方法及装置与流程

文档序号:23418450发布日期:2020-12-25 11:39阅读:123来源:国知局
一种基于redis的数据快速查询方法及装置与流程

本发明属于计算机技术领域,尤其涉及一种基于redis的数据快速查询方法及装置。



背景技术:

目前,最接近的现有技术:随着科技的发展和计算机技术的逐步普及,各行各业通过应用计算机技术,已经将原本复杂的生产过程转化成了计算机数据来进行处理。在运用计算机数据来处理生产过程时,首先是采集需要进行输入的数据(通常情况下输入的数据是表征各个设备工作状态的数据),之后是将输入的数据按照预先设置的规则传到数据处理器进行处理,最后输出相应的数据来控制设备进行相关生产。

在上述利用计算机对数据进行处理的过程中,数据多是存储在关系型数据库中的,原因在于,关系型数据库能够运用统一的格式将数据进行转换和存储,尤其是当需要处理的数据量非常庞大时,将数据存储在计算机上会耗费大量的存储空间,而采用关系型数据库存储的方式能够有效减少对计算机存储空间的占用,从而加快数据的处理过程。

但是,在关系型数据库的应用过程中,需要使用数据进行处理时先要查询出相关的数据,但在关系型数据库中,每一次的查询都要对关系型数据库进行读入读出,上述处理方式非常消耗性能,导致数据的查询速度很慢,之后,将数据交由数据处理器进行处理。

综上所述,现有技术存在的问题是:现有技术中无法解决在关系型数据库中查询数据时速度慢的问题。

解决上述技术问题的难度:需要重新设计业务数据的结果,减少业务数据在单次查询内业务组合的复杂度,来提高数据查询效率。

解决上述技术问题的意义:本发明满足了业务数据和数据结果的需要重新设计的需求。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种基于redis的数据快速查询方法及装置。

本发明是这样实现的,一种基于redis的数据快速查询方法,所述基于redis的数据快速查询方法包括:

步骤一,接收数据存储指令,在内存中将待处理的数据进行设置;将设置完的所述数据存入内存型数据库redis中;

步骤二,接收数据查询指令,从内存型数据库redis中选取与所述数据查询指令相应的数据。

进一步,步骤一中,所述接收数据存储指令,在内存中将待处理的数据进行设置包括:

当接收到数据存储指令时,在内存型数据库redis中为待处理的数据依次配置key值;

在内存型数据库redis中为已经配置有key值的数据依次配置包括多个json数据串的value值;

在内存型数据库redis中将待处理的数据以key-value的形式进行设置。

进一步,步骤二中,所述当接收到数据查询指令时,从内存型数据库redis中选取与所述数据查询指令相应的数据包括:

当接收到数据查询指令时,从内存型数据库redis中选取与所述数据查询指令相应的key值;

根据相应的key值,从内存型数据库redis中选取与所述数据查询指令相应的value值;

根据相应的value值,从内存型数据库redis中选取与所述数据查询指令相应的json数据串。

进一步,所述基于redis的数据快速查询方法还包括:

当待处理的数据应用于网站时,将选取的json数据串发送给网站进行显示处理。

本发明的另一目的在于提供一种实施所述基于redis的数据快速查询方法的基于redis的数据快速查询装置,所述基于redis的数据快速查询装置包括:

数据存储模块,包括数据设置单元以及数据存入单元;用于将待处理的数据放入设置在内存中的内存型数据库redis中;

数据查询模块,包括key值查询单元、value值查询单元以及数据串查询单元;用于接收数据查询指令,并从内存型数据库redis中选取与所述数据查询指令相应的数据;

网站应用模块,用于当待处理的数据应用于网站时,将json数据串发送给所述网站进行显示处理。

进一步,所述数据存储模块包括:

数据设置单元,包括key值配置子单元、value值配置子单元以及数据形式配置子单元;用于当接收到数据存储指令时,在内存中将待处理的数据进行设置;

数据存入单元,用于将设置完的所述数据存入所述内存型数据库redis中。

进一步,所述数据设置单元包括:

key值配置子单元,用于当接收到数据存储指令时,在内存型数据库redis中为待处理的数据依次配置key值;

value值配置子单元,用于在内存型数据库redis中为已经配置有key值的数据依次配置value值;

数据形式配置子单元,用于在内存型数据库redis中将所述待处理的数据以key-value的形式进行设置。

进一步,所述数据查询模块包括:

key值查询单元,用于当接收到数据查询指令时,从内存型数据库redis中选取与所述数据查询指令相应的key值;

value值查询单元,用于根据相应的key值,在从内存型数据库redis中选取与所述数据查询指令相应的value值;

数据串查询单元,用于根据相应的value值,在从内存型数据库redis中选取与所述数据查询指令相应的json数据串。

本发明的另一目的在于提供一种存储在计算机可读介质上的计算机程序产品,包括计算机可读程序,供于电子装置上执行时,提供用户输入接口以实施所述基于redis的数据快速查询方法。

本发明的另一目的在于提供一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机执行所述的基于redis的数据快速查询方法。

综上所述,本发明的优点及积极效果为:通过开启pipeline,我们发现redis每秒可以处理高达70万次的set请求,也就是说,每个set命令的处理时间在120ns多一点。那么redis的性能极限在哪里呢?redis的作者对代码的精雕细琢似乎榨尽了软件(c语言),硬件的速度成为了最后的性能屏障。3是google给出的硬件各层次硬件速度,注意到mainmemoryreference的速度是100ns,即redis的set指令速度已经接近主内存的执行速度了!

本发明提供了一种基于redis的数据快速查询方法及装置,通过设置内存型数据库redis,提高了从数据库选取数据的处理速度。

本发明内存型数据库redis设置在内存中,当接收到数据查询指令时,能够直接从内存型数据库redis中选取与数据查询指令相应的数据,省去了将数据从数据库所在的位置转移到内存中的过程,节省了查询时要对关系型数据库进行读入读出的环节,从而使计算机能够直接运用该相应的数据进行下一步处理,方便快捷。

附图说明

图1是本发明实施例提供的基于redis的数据快速查询方法流程图。

图2是本发明实施例提供的基于redis的数据快速查询系统结构示意图。

图中:1、数据存储模块;2、数据查询模块;3、网站应用模块;4、数据设置单元;5、数据存入单元;6、key值查询单元;7、value值查询单元;8、数据串查询单元。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

现有技术中无法解决在关系型数据库中查询数据时速度慢的问题

针对现有技术存在的问题,本发明提供了一种基于redis的数据快速查询方法及装置,下面结合附图对本发明作详细的描述。

如图1所示,本发明实施例提供的基于redis的数据快速查询方法包括:

s101,接收数据存储指令,在内存中将待处理的数据进行设置;将设置完的所述数据存入内存型数据库redis中。

s102,接收数据查询指令,从内存型数据库redis中选取与所述数据查询指令相应的数据。

步骤s101中,本发明实施例提供的接收数据存储指令,在内存中将待处理的数据进行设置包括:

当接收到数据存储指令时,在内存型数据库redis中为待处理的数据依次配置key值。

在内存型数据库redis中为已经配置有key值的数据依次配置包括多个json数据串的value值。

在内存型数据库redis中将待处理的数据以key-value的形式进行设置。

步骤s102中,本发明实施例提供的当接收到数据查询指令时,从内存型数据库redis中选取与所述数据查询指令相应的数据包括:

当接收到数据查询指令时,从内存型数据库redis中选取与所述数据查询指令相应的key值.

根据相应的key值,从内存型数据库redis中选取与所述数据查询指令相应的value值。

根据相应的value值,从内存型数据库redis中选取与所述数据查询指令相应的json数据串。

本发明实施例提供的基于redis的数据快速查询方法还包括:

当待处理的数据应用于网站时,将选取的json数据串发送给网站进行显示处理。

如图2所示,本发明实施例提供的基于redis的数据快速查询装置包括:

数据存储模块1,包括数据设置单元4以及数据存入单元5;用于将待处理的数据放入设置在内存中的内存型数据库redis中。

数据查询模块2,包括key值查询单元6、value值查询单元7以及数据串查询单元8;用于接收数据查询指令,并从内存型数据库redis中选取与所述数据查询指令相应的数据。

网站应用模块3,用于当待处理的数据应用于网站时,将json数据串发送给所述网站进行显示处理。

本发明实施例提供的数据存储模块1包括:

数据设置单元4,包括key值配置子单元、value值配置子单元以及数据形式配置子单元;用于当接收到数据存储指令时,在内存中将待处理的数据进行设置。

数据存入单元5,用于将设置完的所述数据存入所述内存型数据库redis中。

本发明实施例提供的数据设置单元4包括:

key值配置子单元,用于当接收到数据存储指令时,在内存型数据库redis中为待处理的数据依次配置key值;

value值配置子单元,用于在内存型数据库redis中为已经配置有key值的数据依次配置value值;

数据形式配置子单元,用于在内存型数据库redis中将所述待处理的数据以key-value的形式进行设置。

本发明实施例提供的数据查询模块2包括:

key值查询单元6,用于当接收到数据查询指令时,从内存型数据库redis中选取与所述数据查询指令相应的key值。

value值查询单元7,用于根据相应的key值,在从内存型数据库redis中选取与所述数据查询指令相应的value值。

数据串查询单元8,用于根据相应的value值,在从内存型数据库redis中选取与所述数据查询指令相应的json数据串。

下面结合具体实施例对本发明作进一步说明。

目前,在利用计算机对数据进行处理的过程中,数据多是存储在关系型数据库中的,以运用统一的格式将数据进行转换和存储。但是,当需要处理的数据量非常庞大时,将数据存储在计算机上会耗费大量的存储空间,而采用关系型数据库存储的方式能够有效减少对计算机存储空间的占用,从而加快数据的处理过程。但是,关系型数据库即借助于集合代数等数学概念和方法来处理数据库中的数据,在关系型数据库的应用过程中,需要使用数据进行处理时先要查询出相关的数据,但在关系型数据库中,查询出来的数据无法直接使用,原因在于,关系型数据库并非处于计算机的内存中。这样,查询数据时要对关系型数据库进行读入读出,进而导致数据的查询速度很慢,用户的体验较差。

基于此,本发明实施例提供了基于redis的数据快速查询方法及装置,下面通过实施例进行描述。

实施例1

本实施例提出的基于redis的数据快速查询方法具体包括以下步骤:

步骤1:将待处理的数据放入内存型数据库redis中,其中,内存型数据库redis设置在内存中。

内存型数据库redis是一个key-value存储系统,它支持存储的value类型很多,包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型),上述这些数据类型都支持push/pop、add/remove、取交集并集和差集等的操作。并且,为了保证效率,内存型数据库redis中的数据都是缓存在内存中。在该基于redis的数据快速查询方法中,首先要将待处理的数据放入内存型数据库redis中,即实现了在内存中的数据库进行数据存储的过程。

上述将待处理的数据放入内存型数据库redis中,其中,内存型数据库redis设置在内存中具体包括:

(1)当接收到数据存储指令时,这里需要进行说明的是,数据存储指令可由外部进行触发,也可通过计算机内部的运行算法产生,即在对数据进行存储之前,先在内存中将待处理的数据进行设置,以便统一对数据进行管理,具体包括如下方法:

1、当接收到数据存储指令时,在内存型数据库redis中为待处理的数据依次配置key值,key值即在计算机应用中所说的主键值,目的是为了对待处理的数据分别进行标记。

2、在内存型数据库redis中为已经配置有key值的数据依次配置value值,这里,value值即是各个待处理数据的具体数值,在该基于redis的数据快速查询方法中,value值包括多个json(javascriptobjectnotation)数据串。

首先,先说明下json采用独立于编程语言的文本格式来表示数据,其语法简洁、层次清晰、便于阅读和编写,同时也易于机器解析和生成,从而能够有效地提升网络传输效率。json支持的数据类型较多,例如,字符串、数字、对象、数组等都可以通过json来表示。json可以将javascript对象中表示的一组数据转换为字符串,然后可以在网络或者程序之间传递这个字符串,并在需要的时候将它还原为各编程语言所支持的数据格式,例如,在php网站中,可以将json还原为数组或者一个基本对象。和xml相比较,json的可扩展性高、数据传输效率高、容易阅读,并且,在数据交换方面,能节省大量带宽。

在上述处理过程中,为已经配置有key值的数据依次配置value值,即将上述待处理的数据转化为多个json数据串的形式,以便在内存型数据库redis中进行存储。

3、在内存型数据库redis中将待处理的数据以key-value的形式进行设置,即将上述已经配置的key值和value值组合成key-value的形式。这里需要进行说明的是,与传统的关系型数据库相比,key-value分布式存储的查询速度快、能够节省几十倍服务器数量,在上万并发连接下地完成高速查询。另外,其存放数据量大、并发性高,适于通过主键进行查询,但不能进行复杂的条件查询。另外,key-value被广泛应用于缓存中,能够以最小的性能消耗来向外提供查询服务。

(2)将设置完的数据存入内存型数据库redis中,即当上述数据完成key-value的形式的设置处理后,将设置完成的数据存入内存型数据库redis中,以进行统一存储。

步骤2:当接收到数据查询指令时,从内存型数据库redis中选取与数据查询指令相应的数据,该步骤具体包括如下:

(1)当接收到数据查询指令时,从内存型数据库redis中选取与数据查询指令相应的key值,即在该基于redis的数据快速查询方法中,在接收到数据查询指令时,第一步是查找key值,也就是主键值来选取与数据查询指令相应的key值。

(2)根据相应的key值,在从内存型数据库redis中选取与数据查询指令相应的value值,在选取到key值后,第二步是根据key值来相应的选取与数据查询指令相应的value值,即key值、value值均与数据查询指令相对应。

(3)根据相应的value值,在从内存型数据库redis中选取与数据查询指令相应的json数据串。通常,value值中会包括多个json数据串,在内存型数据库redis中获取到value值后,需要选取与数据查询指令相应的json数据串,以满足数据查询指令的使用需求。

此外,基于redis的数据快速查询方法还包括:当待处理的数据应用于网站时,特别是不同的js界面时,将json数据串发送给网站进行显示处理,由于,value值中包括多个json数据串,因此,其能直接满足不同的js界面的使用需求,转换快速、便于应用。另外,这里需要进行说明的是,当sso不同网站进行单点统一登录时,使用该基于redis的数据快速查询方法速度快、登录便捷。另外,当网站中有黑名单入侵时,能够在内存型数据库redis中实时剔除黑名单的登录用户,从而有效节省了内存消耗。

综上所述,本实施例提供的基于redis的数据快速查询方法包括:首先是将待处理的数据放入内存型数据库redis中,并且,在该基于redis的数据快速查询方法中,内存型数据库redis本身就设置在计算机的内存中,这样,当接收到数据查询指令时,能够从内存型数据库redis中选取与数据查询指令相应的数据,显然,这里查询出来的数据也置于计算机的内存中了,从而省去了将数据从数据库所在的位置转移到内存中的过程,通过上述处理步骤,节省了查询时要对关系型数据库进行读入读出的环节,方便快速。

实施例2

本实施例提供了基于redis的数据快速查询装置包括:数据存储模块用于将待处理的数据放入内存型数据库redis中,其中,内存型数据库redis设置在内存中,数据查询模块用于当接收到数据查询指令时,从内存型数据库redis中选取与数据查询指令相应的数据。

在该基于redis的数据快速查询装置中,数据存储模块包括:数据设置单元用于当接收到数据存储指令时,在内存中将待处理的数据进行设置,数据存入单元用于将设置完的数据存入内存型数据库redis中。

在该基于redis的数据快速查询装置中,上述数据设置单元包括:key值配置子单元用于当接收到数据存储指令时,在内存型数据库redis中为待处理的数据依次配置key值,value值配置子单元用于在内存型数据库redis中为已经配置有key值的数据依次配置value值,其中,value值包括多个json(javascriptobjectnotation)数据串,数据形式配置子单元用于在内存型数据库redis中将待处理的数据以key-value的形式进行设置。

在该基于redis的数据快速查询装置中,上述数据查询模块包括:key值查询单元用于当接收到数据查询指令时,从内存型数据库redis中选取与数据查询指令相应的key值,value值查询单元用于根据相应的key值,在从内存型数据库redis中选取与数据查询指令相应的value值,数据串查询单元用于根据相应的value值,在从内存型数据库redis中选取与数据查询指令相应的json数据串。

另外,基于redis的数据快速查询装置还包括:网站应用模块用于当待处理的数据应用于网站时,将json数据串发送给网站进行显示处理。

综上所述,本实施例提供的基于redis的数据快速查询装置包括:依次相连的数据存储模块和数据查询模块,使用过程中,数据存储模块用于将待处理的数据放入内存型数据库redis中,在这里需要进行说明的是,内存型数据库redis设置在内存中,数据查询模块用于当接收到数据查询指令时,从内存型数据库redis中选取与数据查询指令相应的数据,通过上述各个模块的设置,实现了从内存型数据库redis中快速查询所需要的数据的目的,从而节省了内存消耗,提升了数据查询的速率。

本发明实施例所提供的基于redis的数据快速查询方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1