基于redis的云回放索引服务方法及系统
技术领域
本发明涉及大数据检索
技术领域
,尤其涉及一种基于redis的云回放索引服务方法及系统。背景技术
目前,现有技术一般通过数据库来存储视频文件信息,并且每个视频文件对应一条记录。随着数据量的急剧增加,数据库存储的数据越来越庞大,数据库占用的空间非常庞大,同时用户查询数据造成的压力也会增大,在访问效率大幅度降低的同时使用数据库的成本也在增加,访问效率低下,服务成本高。
因此,现有技术存在缺陷,需要改进。
发明内容
本发明的目的是克服现有技术的不足,提供一种基于redis的云回放索引服务方法及系统。
本发明的技术方案如下:
首先,本发明提供一种基于redis的云回放索引服务方法,包括如下步骤:
S1,数据写入模块接受设备上传的视频信息,并将数据写入redis;
S2,数据合并模块定时将上次合并时间到当前时间内的数据按规则进行合并,并将合并后的数据更新到redis中;
S3,数据查询模块接受客户端的查看设备某时间段视频的请求后,查询redis中对应key里score在时间段内的记录,再将记录返回给客户端。
进一步地,步骤S1写入redis中的数据结构包括此记录第一个视频的开始时间、单个视频时长、以及此记录包含的视频个数。
进一步地,步骤S1写入redis中的数据约定视频文件名为视频的开始时间,且存入redis时使用的key为“设备ID +当天日期”组成的字符串,一个key只存储一天的数据。
进一步地,步骤S1按照业务设置好过期时间,到期自动删除过期的数据。
进一步地,步骤S1将记录存储入有序集合时,以此记录第一个视频文件的开始时间作为score,方便查询时以时间为索引条件。
进一步地,步骤S2中所述的规则为:当两条记录单个视频时长相等且其中一条记录的开始时间+视频时长*视频个数=另一条记录的开始时间,则认为这两条记录可以合并。
进一步地,步骤S2在数据合并后,将合并前的两条记录删除以避免数据重复。
进一步地,步骤S3将记录扩展为视频列表返回给客户端。
其次,本发明提供一种基于redis的云回放索引服务系统,包括上述方法中所述的数据写入模块、数据合并模块、以及数据查询模块;所述数据写入模块分别与设备和redis通信连接,所述数据写入模块用于接收设备上传来的视频信息,以及用于将数据写入redis中;所述数据合并模块与redis通信连接,所述数据合并模块用于定时将上次合并时间到当前时间内的数据按规则进行合并,并将合并后的数据更新到redis中;所述数据查询模块分别与客户端和redis通信连接,所述数据查询模块用于接受客户端的查看设备某时间段视频的请求,并按请求查询redis中对应key里score在时间段内的记录,再将记录扩展为视频列表返回给客户端。
采用上述方案,本发明具有以下有益效果:
本发明通过redis存储文件索引,依靠redis的高性能及有序集合特性实现快速高效的依据时间段查看设备相应时间段的视频文件,提高了查询效率,有效解决现有技术在数据量较大后访问效率低下的问题,同时将连续的视频信息合并成一条记录,大幅度降低存储数据所需的空间,在降低服务成本的同时还能方便快速的访问到设备想要查看的时间段的视频文件。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明基于redis的云回放索引服务方法的流程图;
图2为本发明数据写入模块的业务时序图;
图3为本发明数据合并模块的业务时序图;
图4为本发明数据查询模块的业务时序图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
以下结合附图和具体实施例,对本发明进行详细说明。
首先,参照图1至图4所示,本发明提供一种基于redis的云回放索引服务方法,包括如下步骤:
S1,数据写入模块1接受设备2上传的视频信息,并将数据写入redis3,此时数据不做合并,直接写入redis3中;其中,写入redis3中的数据结构包括此记录第一个视频的开始时间、单个视频时长、以及此记录包含的视频个数,约定视频文件名为视频的开始时间,且存入redis3时使用的key为“设备ID +当天日期”组成的字符串,一个key只存储一天的数据,并按照业务设置好过期时间,到期自动删除过期的数据,记录存储入有序集合时,以此记录第一个视频文件的开始时间作为score,方便查询时以时间为索引条件;
S2,数据合并模块4定时将上次合并时间到当前时间内的数据按规则进行合并,再将合并后的数据更新到redis3中;其中,数据合并模块4合并数据的规则为:当两条记录单个视频时长相等且其中一条记录的开始时间+视频时长*视频个数=另一条记录的开始时间,则认为这两条记录可以合并,也就是说,所述数据合并模块4定时获取上次合并时间到当前时间内的所有数据,并将所获取到的数据中所有满足“两条记录单个视频时长相等且其中一条记录的开始时间+视频时长*视频个数=另一条记录的开始时间”的两条记录进行合并;为了避免数据重复合并,在数据合并后,所述数据合并模块4将合并前的两条记录删除,从而避免数据重复;
S3,数据查询模块5接受用户查看设备2某时间段视频的请求后,查询redis3中对应key里score在时间段内的记录,再将记录扩展为视频列表返回给用户,也就是说,用户通过客户端6向数据查询模块5发出查看设备2某时间段视频的请求,数据查询模块5接受客户端6发来的查看设备2某时间段视频的请求后,数据查询模块5查询redis3中对应key里score在时间段内的记录,再将记录扩展为视频列表返回给客户端6,用户通过客户端6可任意查看视频列表中罗列的数据。
其次,参照图2至图4所示,本发明还提供一种基于redis的云回放索引服务,包括上述方法中所述的数据写入模块1、数据合并模块4、以及数据查询模块5;所述数据写入模块1分别与设备2和redis3通信连接,所述数据写入模块1用于接收所述设备2上传来的视频信息,以及用于将相应的数据(即接收到的视频信息及其相关数据)写入redis3中;所述数据合并模块4与redis3通信连接,所述数据合并模块4用于定时获取上次合并时间到当前时间内的所有数据,并将所获取到的数据中所有满足“两条记录单个视频时长相等且其中一条记录的开始时间+视频时长*视频个数=另一条记录的开始时间”的两条记录进行合并,再将合并后的数据更新到redis3中(即将合并后的数据写入redis3中),也就是说,所述数据合并模块4用于定时将上次合并时间到当前时间内的数据按规则进行合并,并将合并后的数据更新到redis3中;所述数据查询模块5分别与客户端6和redis3通信连接,所述数据查询模块5用于接受用户通过客户端6发送来的请求(该请求为查看设备2某时间段视频的请求,但请求不限于查看设备2某时间段视频),并按请求查询redis3中对应key里score在时间段内的记录,再将记录扩展为视频列表返回给客户端6,从而供客户查看,也就是说,所述数据查询模块5根据客户端6的查看设备2某时间段视频的请求来查询redis3中对应key里score在时间段内的记录,并将记录扩展为视频列表再返回给客户端6。
与现有技术相比,本发明具有以下有益效果:
本发明通过redis存储文件索引,依靠redis的高性能及有序集合特性实现快速高效的依据时间段查看设备相应时间段的视频文件,提高了查询效率,有效解决现有技术在数据量较大后访问效率低下的问题,同时将连续的视频信息合并成一条记录,大幅度降低存储数据所需的空间,在降低服务成本的同时还能方便快速的访问到设备想要查看的时间段的视频文件。
以上仅为本发明的较佳实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:监控调度方法、系统、装置及存储介质