[发明专利]基于FastDFS+Redis的分布式文件存储系统及方法在审
申请号: | 202011573535.X | 申请日: | 2020-12-28 |
公开(公告)号: | CN112486943A | 公开(公告)日: | 2021-03-12 |
发明(设计)人: | 郭昆;林晓晖;郭文忠;许玲玲 | 申请(专利权)人: | 福州大学 |
主分类号: | G06F16/182 | 分类号: | G06F16/182;G06F16/172;G06F16/16;G06F16/13 |
代理公司: | 福州元创专利商标代理有限公司 35100 | 代理人: | 陈明鑫;蔡学俊 |
地址: | 350108 福建省福州市*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fastdfs redis 分布式 文件 存储系统 方法 | ||
本发明涉及一种基于FastDFS+Redis的分布式文件存储系统,包括数据库和中间件;所述中间包括存储模块、查询模块和删除模块;所述存储模块利用FastDFS集群实现海量文件数据的分布式存储;所述查询模块利用Redis集群实现基于分布式缓存的高性能文件查询;所述删除模块提供分布式文件的删除功能。本发明提出一种基于Base64和Gzip压缩算法的文件压缩缓存策略,解决了Redis缓存文件时字符串长度过长、内存空间占用大的问题,并设计了一种基于文件使用频率的缓存替换算法,提高了缓存的命中率。
技术领域
本发明涉及计算机技术领域,具体涉及一种基于FastDFS+Redis的分布式文件存储系统及方法。
背景技术
随着互联网的发展,推动着大数据时代的到来。在这过程当中,除了非结构化数据,结构化数据也在以爆炸式的速度增长。结构化数据通常是指大小处于2KB-1MB之间的小文件。文件数据的存储包含文件元数据和文件内容的存储,目前文件元数据的存储通常采用MySQL,当数据规模越来越大时,存取性能急剧下降;FastDFS作为一个轻量级的开源分布式文件系统,适合中小型文件的存储,但FastDFS将数据存储在磁盘上,每次访问都需要从磁盘读取数据,多次的IO造成了查询性能的降低。为减小磁盘的访问次数,提高文件的读速度,可选的方案有引入Redis作为文件缓存服务,但Redis是基于内存的数据库,直接利用Redis缓存文件会造成内存空间占用过大、查询性能低的问题,从而无法适用于大规模文件数据;此外,使用Redis作为缓存服务时,Redis提供的6种原生缓存淘汰策略,对于随意性和周期性的查询,缓存命中率不高。
发明内容
有鉴于此,本发明的目的在于提供一种基于FastDFS+Redis的分布式文件存储系统及方法,实现文件数据更为高效的存储和读写,解决Redis缓存文件时字符串长度过长、内存空间占用大的问题,提高了内存空间的利用率,具备良好的缓存命中率。
为实现上述目的,本发明采用如下技术方案:
一种基于FastDFS+Redis的分布式文件存储系统,包括数据库和中间件;所述中间件包括存储模块、查询模块和删除模块;所述存储模块利用FastDFS集群实现海量文件数据的分布式存储;所述查询模块利用Redis集群实现基于分布式缓存的高性能文件查询;所述删除模块提供分布式文件的删除功能。
进一步的,所述存储模块包括文件上传组件,缓存压缩组件和缓存替换组件。
基于FastDFS+Redis的分布式文件存储系统的文件上传方法,包括以下步骤:
步骤1:根据指定路径获取文件内容和文件元数据信息,将文件上传到FastDFS;
步骤2:判断文件上传是否成功,若失败则抛出异常,结束;
步骤3:将上传成功后返回的FileID与元数据写入Redis;
步骤4:判断Redis写数据是否成功,若成功,则文件上传成功;
步骤5:判断写Redis次数是否小于系统默认设置值,若小于转步骤3;
步骤6:从FastDFS中删除文件,并返回上传失败。
进一步的,所述文件的元数据存储具体为:将元数据中的所有者、文件名、文件类形三个字段拼接而成的字符串设置为键,剩余的字段加上FileID拼接而成的字符串作为键对应的值,以键-值的形式写入Redis。
进一步的,所述缓存压缩组件,将待缓存文件使用Base64编码,对编码后的文件使用Gzip算法压缩,最后将编码压缩后的文件写入Redis。
一种基于FastDFS+Redis的分布式文件存储系统的缓存替换方法,包括以下步骤:
步骤1:使用一个历史队列记录文件的使用次数;
步骤2:将文件索引写入历史访问队列,若该文件的索引已经存在,则对该记录的使用次数加1;若不存在,则将该文件索引写入访问队列中,并且设置使用次数为1;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州大学,未经福州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011573535.X/2.html,转载请声明来源钻瓜专利网。