一种基于哈希表的路由器运行数据缓存方法及系统与流程

文档序号:12665703阅读:来源:国知局

技术特征:

1.一种基于哈希表的路由器运行数据缓存方法,其特征在于包括如下步骤:

S1:在与路由器连接的服务器内存中创建哈希表;

S2:收到路由器运行数据上报指令,通过哈希函数计算得到所述路由器在服务器内存中对应的节点的哈希表位置;

S3:在所述哈希表位置查找是否存在所述路由器的节点信息,如果存在,更新该节点信息;如果不存在,新增节点和节点对应的哈希表索引,并将上报的运行数据存储在新增的节点上;

S4:将内存数据写入数据库。

2.根据权利要求1所述的基于哈希表的路由器运行数据缓存方法,其特征在于:在步骤S1中,创建哈希表的方法为:创建一个容量为N的数组指针,所述指针指向一个数组,该数组是由N个节点的首地址组成。

3.根据权利要求2所述的基于哈希表的路由器运行数据缓存方法,其特征在于:数组指针的容量N根据路由器的数量配置。

4.根据权利要求2所述的基于哈希表的路由器运行数据缓存方法,其特征在于:在步骤S2中,路由器标示符的后8个字节为路由器的唯一序列号,所述哈希函数是由路由器序列号的标示符决定,哈希函数算法如下:

A1:对路由器标示符的后8个字节中,每两个字节按照按十六进制文本转二进制,转为一个字节,得到4个字节的二进制数值;

A2:将步骤A1得到的二进制数值强制赋值给unsigned int,得到路由器唯一id号;

A3:将步骤A2得到的id号对哈希表容量取余,即得到哈希表位置值。

5.根据权利要求4所述的基于哈希表的路由器运行数据缓存方法,其特征在于:在步骤A3中,每个哈希表位置采用链表保存数据,当得到哈希表位置后,对链表中每个节点的id号进行对比,如果与请求上报指令的路由器的id号相同,则找到该路由器的节点,否则,在链表尾端新增节点。

6.根据权利要求5所述的基于哈希表的路由器运行数据缓存方法,其特征在于:服务器收到路由器运行数据上报指令,更新数据的具体方法为:

S301:开始处理上报数据;

S302:判断路由器的参数是否合法,如果是,根据路由器的标示符得到id,如果否,执行步骤S35;

S303:获取哈希表位置,在哈希表位置的链表循环查找id;

S304:判断是否找到id,如果是,更新路由器运行数据,如果否,新增节点,将运行数据给新增节点赋值,加入链表尾端;

S305:上报处理结束。

7.根据权利要求6所述的基于哈希表的路由器运行数据缓存方法,其特征在于:服务器提供对外读取路由器运行数据的接口,用户能够通过该接口读取内存中的数据,读取内存中路由器运行数据的方法包括如下步骤:

S311:开始读取数据;

S312:根据路由器的标示符的到id;

S313:获取哈希表位置,在哈希表位置的链表循环查找id;

S314:判断是否找到id,如果是,读取路由器运行数据,如果否,读取失败;

S315:读取结束。

8.根据权利要求1-7任一项所述的基于哈希表的路由器运行数据缓存方法,其特征在于:

在步骤S4中,内存数据定期写入数据库,具体实现方法为:

S41:更新开始,内存每更新一次数据,更新次数加1;

S42:判断更新次数是否达到同步阀值,如果是,将流量与数据库中的相应路由器的流量累加,更新到数据库,如果否,返回执行步骤S41;

S43:将信号强度、网络模式、GPS位置、最后活跃时间更新到数据库;

S44:清空内存节点流量统计,更新次数归零,更新结束。

9.一种实现根据权利要求1-8任一项所述基于哈希表的路由器运行数据缓存方法的系统,其特征在于包括:

哈希表创建模块:用于在与路由器连接的服务器内存中创建哈希表;

哈希表位置计算模块:用于收到路由器运行数据上报指令,通过哈希函数计算得到所述路由器在服务器内存中对应的节点的哈希表位置;

数据更新模块:用于在所述哈希表位置查找是否存在所述路由器的节点信息,如果存在,更新该节点信息;如果不存在,新增节点和节点对应的哈希表索引,并将上报的运行数据存储在新增的节点上;

数据库写入模块:用于将内存数据写入数据库。

10.根据权利要求9所述的系统,其特征在于:在数据更新模块在收到路由器运行数据上报指令后,开始更新数据,所述数据更新模块包括:

初始化单元:用于开始处理上报数据;

第一判断单元:用于判断路由器的参数是否合法,如果是,根据路由器的标示符得到id,如果否,上报处理结束;

获取单元:用于获取哈希表位置,在哈希表位置的链表循环查找id;

第二判断单元:用于判断是否找到id,如果是,更新路由器运行数据,如果否,新增节点,将运行数据给新增节点赋值,加入链表尾端;

结束单元:用于结束上报数据处理。

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