一种基于Redis的IP资源管理方法及装置与流程

文档序号:25290130发布日期:2021-06-01 17:41阅读:102来源:国知局
一种基于Redis的IP资源管理方法及装置与流程

本发明涉及计算机数据备份技术领域,特别是涉及一种基于redis的ip资源管理方法及装置。



背景技术:

为了应对越来越高的流量需求和完善公司服务器设备资源的管理,需要对新增设备进行ip资源管理,当新建docker容器或者kvm虚拟机的时候往往需要分发ip,关键是要分清楚哪些ip是可用的,哪些ip是白名单不可分配的。

在现有技术中,当进行ip申请时,是从数据库里面取已经使用过的ip,然后在程序中进行计算,但这种方式不够灵活,因为使用过的ip可能是单个ip,也可能是某个ip段,存储在关系型数据库中存取都需要做处理。白名单中的ip也需要存储在数据库中,每次需要读两张表且需要更多的额外计算。

reids是一个支持持久化的内存数据库,本发明拟运用reids内存数据库来实现这一个管理系统,由于reids具有单线程高速等特点,足以应对高并发分布式的需求。



技术实现要素:

为克服上述现有技术存在的不足,本发明之目的在于提供一种基于redis的ip资源管理方法及装置,以基于redis实现ip资源管理的目的。

为达上述目的,本发明提出一种基于redis的ip资源管理方法,包括如下步骤:

步骤s1,接收ip申请请求,所述ip申请请求包括目标ip段以及需求个数;

步骤s2,根据所述ip申请请求生成以目标ip段为key,值为字段范围的集合数据;

步骤s3,将所述集合数据与已使用ip集合进行差集计算,得到差集;

步骤s4,遍历所述差集中的ip,将其与白名单进行匹配,根据匹配结果返回未使用的且不在白名单中的ip。

优选地,于步骤s2中,将生成的集合数据存储到redis数据库中,并存储成set数据类型。

优选地,于步骤s3中,将所述集合数据中的ip一一于所述已使用ip集合中遍历匹配,若匹配,则认为该ip为已使用ip,则去除该已使用ip,最后得到所有未使用过的ip作为差集。

优选地,利用diff操作将请求得到的集合与已经使用的集合进行差集计算,得到所述差集。

优选地,于步骤s4中,遍历所述差集众的ip,将其未使用过的ip并且未在白名单中的ip返回,同时将该ip加入所述已使用ip集合中。

为达到上述目的,本发明还提供一种基于redis的ip资源管理装置,包括:

ip申请请求接收单元,用于接收ip申请请求,所述ip申请请求包括目标ip段以及需求个数;

集合生成单元,用于根据所述ip申请请求生成以目标ip段为key,值为字段范围的集合数据;

差集计算单元,用于将所述集合数据与已使用ip集合进行差集计算,得到差集;

白名单过滤单元,用于遍历所述差集中的ip,将其与白名单进行匹配,根据匹配结果返回未使用的且不在白名单中的ip。

优选地,所述白名单过滤单元遍历所述差集众的ip,将其未使用过的ip并且未在白名单中的ip返回,同时将该ip加入所述已使用ip集合中。

优选地,所述集合生成单元将生成的集合数据存储到redis数据库中,并存储成set数据类型。

优选地,所述差集计算单元将所述集合数据中的ip一一于所述已使用ip集合中遍历匹配,若匹配,则认为该ip为已使用ip,则去除该已使用ip,最后得到所有未使用过的ip作为差集。

优选地,所述差集计算单元利用diff操作将请求得到的集合与已经使用的集合进行差集计算,得到所述差集。

与现有技术相比,本发明一种基于redis的ip资源管理方法及装置通过根据接收的ip申请请求生成以目标ip段为key,值为字段范围的集合数据,然后将所述集合数据与已使用ip集合进行差集计算,得到差集,遍历所述差集中的ip,将其与白名单进行匹配,根据匹配结果返回未使用的且不在白名单中的ip,基于redis数据库实现了ip资源管理的目的。

附图说明

图1为本发明一种基于redis的ip资源管理方法的步骤流程图;

图2为本发明一种基于redis的ip资源管理装置的系统架构图。

具体实施方式

以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。

图1为本发明一种基于redis的ip资源管理方法的步骤流程图。如图1所示,本发明一种基于redis的ip资源管理方法,包括如下步骤:

步骤s1,接收ip申请请求,所述ip申请请求包括目标ip段以及需求个数。

也就是说,当用户需要申请ip时,会以目标ip段和需求个数提出ip申请请求,比如目标ip字段10.200.10.1-10.200.10.100,ip个数为10。

步骤s2,根据所述ip申请请求生成以目标ip段为key,值为字段范围的集合数据。

在本发明具体实施例中,假设所述ip申请请求包含目标ip字段为10.200.10.1-10.200.10.100,ip个数为10,则根据该ip申请请求生成以10.200.10.1-10.200.10.100为key,值value为10.1-10.100ip段中的ip数据的集合数据。

优选地,于步骤s2中,将生成的集合数据存储到redis数据库中,并存储成set数据类型。

步骤s3,将所述集合数据与已使用ip集合进行差集计算,得到差集。

在本发明具体实施例中,即将所述集合数据一一于所述已使用ip集合中遍历匹配,若匹配,则认为该ip为已使用ip,则去除该已使用ip,最后得到所有未使用过的ip作为差集。

于步骤s3中,利用diff操作将请求的集合与已经使用的集合进行差集计算,例如请求的存储于redis数据库中set数据类型的集合为10.200.10.10-10.200.10.20,利用diff操作将这个集合与redis数据库中存储为set数据类型的已经使用的集合进行差集计算,结果为这个范围中的未使用ip段。

步骤s4,遍历所述差集中的ip,将其与白名单进行匹配,根据匹配结果返回未使用的且不在白名单中的ip,本发明中,白名单可以预先设置于redis数据库中,后续也可以进行更新。

具体地,遍历所述差集众的ip,将其未使用过的ip并且未在白名单中的ip返回,同时将该ip加入已使用ip集合中。

图2为本发明一种基于redis的ip资源管理装置的系统架构图。如图2所示,本发明一种基于redis的ip资源管理装置,包括:

ip申请请求接收单元201,用于接收ip申请请求,所述ip申请请求包括目标ip段以及需求个数。

也就是说,当用户需要申请ip时,会以目标ip段和需求个数提出ip申请请求,比如目标ip字段10.200.10.1-10.200.10.100,ip个数为10,ip申请请求接收单元201则会接收到包括目标ip段和需求个数的该ip申请请求。

集合生成单元202,用于根据所述ip申请请求生成以目标ip段为key,值为字段范围的集合数据。

在本发明具体实施例中,假设所述ip申请请求包含目标ip字段为10.200.10.1-10.200.10.100,ip个数为10,则集合生成单元202根据该ip申请请求生成以10.200.10.1-10.200.10.100为key,值value为10.1-10.100的集合数据。

优选地,集合生成单元202将生成的集合数据存储到redis数据库中,并存储成set数据类型。

差集计算单元203,用于将所述集合数据与已使用ip集合进行差集计算,得到差集。

在本发明具体实施例中,差集计算单元203将所述集合数据一一于所述已使用ip集合中遍历匹配,若匹配,则认为该ip为已使用ip,则去除该已使用ip,最后得到所有未使用过的ip作为差集。

具体地,差集计算单元203利用diff操作将请求的集合与已经使用的集合进行差集计算,例如请求的存储于redis数据库中set数据类型的集合为10.200.10.10-10.200.10.20,利用diff操作将这个集合与redis数据库中存储为set数据类型的已经使用的集合进行差集计算,结果为这个范围中的未使用ip段

白名单过滤单元204,用于遍历所述差集中的ip,将其与白名单进行匹配,根据匹配结果返回未使用的且不在白名单中的ip。

具体地,白名单过滤单元204会遍历所述差集众的ip,将其未使用过的ip并且未在白名单中的ip返回,同时将该ip加入已使用ip集合中。

实施例

在本实施例中,一种基于redis的ip资源管理过程如下:

步骤1,用户以ip段和需求个数进行申请,比如:10.200.10.1-10.200.10.100。

步骤2,生成以10.200.10.1-10.200.10.100为key,值为10.1-10.100的set集合数据。

步骤3,然后将set集合与used集合进行差集计算(used中为已经已用过的ip)。

步骤4,差集为未使用过的ip,遍历差集中的ip,检查white-ip是否为true,例如遍历差集,假设获取10.200.10.11这个ip值,将它包装成white-10.200.10.11这个key去查看redis数据库白名单中是否存在这个key,如果存在则为true,则取下一个ip。

步骤5,将未使用过的ip并且未在白名单中的ip返回,并且将该ip加入到used集合中。

在本实施例中,white-ip白名单中设置了若干不可分配的ip的白名单管理,比如white-10.200.10.99的string类型的白名单管理(就是以white-10.200.10.99作为key,值为true,意思就是10.200.10.99为白名单中的ip,不能被取到。

步骤7,上述实施过程利用到redisset集合进行存储,并且利用set的集合间高速运算产出结果。

本发明运用reids内存数据库实现,由于redis单线程高速等特点,足以应对高并发分布式的需求。

综上所述,本发明一种基于redis的ip资源管理方法及装置通过根据接收的ip申请请求生成以目标ip段为key,值为字段范围的集合数据,然后将所述集合数据与已使用ip集合进行差集计算,得到差集,遍历所述差集中的ip,将其与白名单进行匹配,根据匹配结果返回未使用的且不在白名单中的ip,基于redis数据库实现了ip资源管理的目的。

上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

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