一种基于哈希算法的电力设备数据存取方法及系统技术方案

技术编号:24573969 阅读:52 留言:0更新日期:2020-06-21 00:06
本发明专利技术涉及电力监控技术领域,尤其涉及一种基于哈希算法的电力设备数据存取方法及系统,其不同之处在于,其步骤包括:S1、构建哈希表;S2、取设备ID,以设备ID为哈希键值对的key值;S3、使用APHash算法得到哈希键值对的value值;S4、数据存取。本发明专利技术大大提高了存取和查找速度,保证了系统的实时性和运行效率。

A data access method and system of power equipment based on hash algorithm

【技术实现步骤摘要】
一种基于哈希算法的电力设备数据存取方法及系统
本专利技术涉及电力监控
,尤其涉及一种基于哈希算法的电力设备数据存取方法及系统。
技术介绍
电力系统是由供电和用电环节组成的电能生产与消费系统。其将自然界的一次能源通过发电动力装置转化成电能,再经输电、变电和配电将电能供应到各用户。为实现这一功能,电力系统在各个环节和不同层次还具有相应的信息与控制系统,对电能的生产过程进行监控和控制,以保证用户获得安全、优质的电能。在电力监控系统中,如果电力设备过多,数据量过大,则在数据存取时会消耗大量的时间,不利于系统的实时性和运行效率。鉴于此,为克服上述技术缺陷,提供一种基于哈希算法的电力设备数据存取方法及系统成为本领域亟待解决的问题。
技术实现思路
本专利技术的目的在于克服现有技术的缺点,提供一种基于哈希算法的电力设备数据存取方法及系统,大大提高了存取和查找速度,保证了系统的实时性和运行效率。为解决以上技术问题,本专利技术的技术方案为:一种基于哈希算法的电力设备数据存取方法,其不同之处在于,其步骤包括:S1、构建哈希表:S11、构建链表,以key和value为元素,建立存储哈希键值对的节点;S12、以步骤S11中构建的链表为元素,构建哈希表;S2、取设备ID,以设备ID为哈希键值对的key值;S3、使用APHash算法得到哈希键值对的value值;S4、数据存取:S41、存数据:以键值对为元素添加节点,根据value值插入节点到哈希表相应位置;S42、取数据:根据value值在哈希表中查找到元素,取出key即为设备ID。按以上技术方案,所述步骤S12中,以指向节点的指针为链表头指针,以指向头指针的指针为哈希表指针,同时在成员变量中有表示散列地址长度的变量即数组的长度。按以上技术方案,步骤S41中,通过APHash算法得到散列值nHash,分配一个节点,把key和value存入节点,并把节点添加到链表之中。按以上技术方案,查找时先用key计算出是哪个链表,之后遍历链表,把key值与链表中的节点key值一一比较,即可找到数据点。一种基于哈希算法的电力设备数据存取系统,其特征在于:其包括电力设备数据、哈希表、主数据库和实时数据库,所述电力设备数据分别存入哈希表和实时数据库中,取数据时利用哈希表一次性找到数据。按以上技术方案,所述主数据库中建立有与电力设备信息相关的表,包括设备表、信号表、连接表。按以上技术方案,在所述设备表中以设备id为主键,其它表与设备表相关联,从而建立了以设备id为标志符,以设备id为查找条件可以查找到关于设备所有信息的存取体系。按以上技术方案,所述实时数据库建立在内存中,绕过访问数据库的过程,可以实现数据的快速读取。按以上技术方案,所述哈希表包括设备哈希表,遥测哈希表和遥信哈希表。按以上技术方案,各类哈希表建立一个子类,子类继承哈希算法具体实现中的父类,在子类中增添各个类特有的属性,以类的对象实例分配内存。对比现有技术,本专利技术的有益特点为:为了解决大数据存取的问题,设计了这种基于哈希算法的存取系统,本专利技术引入哈希表和实时数据库,把数据分别存入哈希表和实时数据库中,在系统取数据时利用哈希表的查找便捷性一次性找到数据,大大提高了查找速度,保证了系统的实时性和运行效率。附图说明图1为本专利技术实施例的数据存取系统架构示意图;图2为本专利技术实施例的数据存取方法流程示意图;图3为本专利技术实施例的各类哈希表示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本专利技术作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。在下文中,将参考附图来更好地理解本专利技术的许多方面。附图中的部件未必按照比例绘制。替代地,重点在于清楚地说明本专利技术的部件。此外,在附图中的若干视图中,相同的附图标记指示相对应零件。如本文所用的词语“示例性”或“说明性”表示用作示例、例子或说明。在本文中描述为“示例性”或“说明性”的任何实施方式未必理解为相对于其它实施方式是优选的或有利的。下文所描述的所有实施方式是示例性实施方式,提供这些示例性实施方式是为了使得本领域技术人员做出和使用本公开的实施例并且预期并不限制本公开的范围,本公开的范围由权利要求限定。在其它实施方式中,详细地描述了熟知的特征和方法以便不混淆本专利技术。出于本文描述的目的,术语“上”、“下”、“左”、“右”、“前”、“后”、“竖直”、“水平”和其衍生词将与如图1定向的专利技术有关。而且,并无意图受到前文的

技术介绍

技术实现思路
或下文的详细描述中给出的任何明示或暗示的理论限制。还应了解在附图中示出和在下文的说明书中描述的具体装置和过程是在所附权利要求中限定的专利技术构思的简单示例性实施例。因此,与本文所公开的实施例相关的具体尺寸和其他物理特征不应被理解为限制性的,除非权利要求书另作明确地陈述。本专利技术中使用到的技术有:哈希表技术,哈希表是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。作为线性数据结构与表格和队列等相比,哈希表无疑是查找速度比较快的一种。通过将单向数学函数(有时称为“哈希算法”)应用到任意数量的数据所得到的固定大小的结果。如果输入数据中有变化,则哈希也会发生变化。哈希可用于许多操作,包括身份验证和数字签名,也称为“消息摘要”。拉链法就是把具有相同散列地址的关键字(同义词)值放在同一个单链表中,称为同义词链表。有m个散列地址就有m个链表,同时用指针数组T[0..m-1]存放各个链表的头指针,凡是散列地址为i的记录都以结点方式插入到以T[i]为指针的单链表中。T中各分量的初值应为空指针。这种方法的基本思想就是选择足够大的M,使得所有链表都尽可能短以保证高效的查找。查找分两步:首先根据Hash值找到对应的链表,然后沿着链表顺序查找对应的键。在本系统中哈希函数采用APHash算法,这种算法基于对字符编码的迭代运算,可以很好地解决冲突,由于设备id是设备的唯一标志符,以id为key值,经过哈希运算后得到value值,以value值为哈希数组的位置符,锁定链表的位置,并依次向链表中增添节点,即可把key值散列到整个哈希表中。1)构建哈希表首先构建链表,以key和value为元素,建立链表节点;以上一步构建的链表为元素,构建哈希表,以指向节点的指针为链表头指针,同时以指向头指针的指针为哈希表指针,同时在成员变量中有表示散列地址长度的变量即数组的长度。在结构体中声明增删改查的各个函数,在外部调用时只需以哈希指针定位,直接调用类中的函数。2)APhash算法APHash算法,这种算法基于对字符编码的迭代本文档来自技高网
...

【技术保护点】
1.一种基于哈希算法的电力设备数据存取方法,其特征在于,其步骤包括:/nS1、构建哈希表;/nS11、构建链表,以key和value为元素,建立存储哈希键值对的节点;/nS12、以步骤S11中构建的链表为元素,构建哈希表;/nS2、取设备ID,以设备ID为哈希键值对的key值;/nS3、使用APHash算法得到哈希键值对的value值;/nS4、数据存取;/nS41、存数据:以键值对为元素添加节点,根据value值插入节点到哈希表相应位置;/nS42、取数据:根据value值在哈希表中查找到元素,取出key即为设备ID。/n

【技术特征摘要】
1.一种基于哈希算法的电力设备数据存取方法,其特征在于,其步骤包括:
S1、构建哈希表;
S11、构建链表,以key和value为元素,建立存储哈希键值对的节点;
S12、以步骤S11中构建的链表为元素,构建哈希表;
S2、取设备ID,以设备ID为哈希键值对的key值;
S3、使用APHash算法得到哈希键值对的value值;
S4、数据存取;
S41、存数据:以键值对为元素添加节点,根据value值插入节点到哈希表相应位置;
S42、取数据:根据value值在哈希表中查找到元素,取出key即为设备ID。


2.根据权利要求1所述的基于哈希算法的电力设备数据存取方法,其特征在于:所述步骤S12中,以指向节点的指针为链表头指针,以指向头指针的指针为哈希表指针,同时在成员变量中有表示散列地址长度的变量即数组的长度。


3.根据权利要求1所述的基于哈希算法的电力设备数据存取方法,其特征在于:步骤S41中,通过APHash算法得到散列值nHash,分配一个节点,把key和value存入节点,并把节点添加到链表之中。


4.根据权利要求1所述的基于哈希算法的电力设备数据存取方法,其特征在于:查找时先用key计算出是哪个链表,之后遍历链表,把key值与链表中的节点...

【专利技术属性】
技术研发人员:李征航曾召松袁成文涛崔新友谭蕾
申请(专利权)人:武汉烽火富华电气有限责任公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1