[发明专利]基于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 分布式 文件 存储系统 方法 | ||
1.一种基于FastDFS+Redis的分布式文件存储系统,其特征在于,包括数据库和中间件;所述中间件包括存储模块、查询模块和删除模块;所述存储模块利用FastDFS集群实现海量文件数据的分布式存储;所述查询模块利用Redis集群实现基于分布式缓存的高性能文件查询;所述删除模块提供分布式文件的删除功能。
2.根据权利要求1所述的基于FastDFS+Redis的分布式文件存储系统,其特征在于,所述存储模块包括文件上传组件,缓存压缩组件和缓存替换组件。
3.根据权利要求2所述的基于FastDFS+Redis的分布式文件存储系统的文件上传方法,其特征在于,包括以下步骤:
步骤1:根据指定路径获取文件内容和文件元数据信息,将文件上传到FastDFS;
步骤2:判读文件是否上传成功,若失败则抛出异常,结束;
步骤3:将上传成功后返回的FileID与元数据写入Redis;
步骤4:判断Redis写数据是否成功,若成功,则文件上传成功;
步骤5:判断写Redis次数是否小于系统默认设置值,若小于转步骤3;
步骤6:从FastDFS中删除文件,并返回上传失败。
4.根据权利要求3所述的基于FastDFS+Redis的分布式文件存储系统的文件上传方法,其特征在于,所述文件的元数据存储具体为:将元数据中的所有者、文件名、文件类形三个字段拼接而成的字符串设置为键,剩余的字段加上FileID拼接而成的字符串作为键对应的值,以键-值的形式写入Redis。
5.根据权利要求2所述的基于FastDFS+Redis的分布式文件存储系统,其特征在于,所述缓存压缩组件,将待缓存文件使用Base64编码,对编码后的文件使用Gzip算法压缩,最后将编码压缩后的文件写入Redis。
6.根据权利要求2所述的基于FastDFS+Redis的分布式文件存储系统的缓存替换方法,其特征在于,包括以下步骤:
步骤1:使用一个历史队列记录文件的使用次数;
步骤2:将文件索引写入历史访问队列,若该文件的索引已经存在,则对该记录的使用次数加1;若不存在,则将该文件索引写入访问队列中,并设置使用次数为1;
步骤3:当文件使用次数达到k次时,将编码压缩后的文件写入Redis缓存中;
步骤4:判断缓存容量是否小于系统预设的阈值,若是,转步骤6;
步骤5:按照文件使用频率高低,进行缓存的淘汰选择;
步骤6:将编码压缩后的文件数据写入Redis。
7.根据权利要求6所述的基于FastDFS+Redis的分布式文件存储系统的缓存替换方法,其特征在于,所述文件使用频率计算公式如下:
其中表示文件使用频率,表示周期,表示该周期内文件的使用次数,表示上个周期的文件使用频率,表示周期个数。
8.根据权利要求1所述的基于FastDFS+Redis的分布式文件存储系统,其特征在于,所述查询模块根据查询条件,先查询Redis,若Redis中存在该文件的缓存,则返回经Gzip算法解压和Base64解码后的文件;否则,利用FileID查询FastDFS获取文件,更新记录的查询次数,判断是否符合缓存替换算法的执行条件。
9.根据权利要求1所述的基于FastDFS+Redis的分布式文件存储系统的删除方法,其特征在于,包括以下步骤:
步骤1:根据删除条件查询Redis,获取文件的FileID;
步骤2:判断Redis中是否存在文件的缓存,存在则转步骤6;
步骤3:根据FileID,删除FastDFS上保存的文件;
步骤4:判断文件删除是否成功,成功则结束;
步骤5:判断尝试删除次数是否小于系统预设的阈值,是则删除次数加一,转步骤3;否则结束;
步骤6:拷贝文件作为副本;
步骤7:执行同时删除的操作,分别删除Redis上的缓存和FastDFS上的文件;
步骤8:判断是否同时删除成功,是则删除成功,结束;
步骤9:判断尝试删除次数是否小于系统预设的阈值,是则删除次数加一,转步骤7;
步骤10:回滚删除操作,将预先保存的副本重新写入中间件中,结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于福州大学,未经福州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011573535.X/1.html,转载请声明来源钻瓜专利网。