FastDFS加Redis实现自定义文件名存储海量文件
FastDFS非常适合存储大量的小文件,遗憾的是本身不支持自定义文件名,文件名是存储成功以后根据存储位置生成的一个file_id。很多应用场景不得不使用自定义文件名,在不修改其源码的情况下,可以在存储客户端fdfs_client增加一个用来存储自定义文件名和fastdfs的file_id之间的映射关系的数据库间接实现自定义文件名的存取和访问,在这里我们选用了reids。顺便说一下,淘宝也有一个类似于FastDFS的文件存储系统TFS,对于自定义文件名,它是用mysql来存储映射关系的,我认为在高并发访问下mysql本身就是瓶颈,因此在这个方案中采用了redis。
准备工作:
fastdfs环境安装...略...(官方:
XXXXXXXXXXXXXXXXXXXXXXX/p/fastdfs/)
redis环境安装...略...(官方:
XXXXXXXXXXXXXXX/)
用python实现,因此需要安装fastdfs的python客户端(下载:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/files/fdfs_client-py-1.2.6.tar.gz)
python的redis客户端,到
XXXXXXXXXXXXXXXXXXXXXXX/pypi/redis下载
详见博客:
XXXXXXXXXXXXXXXXXXXXt/waterbear/blog/15074301
# -*- coding: utf-8 -*-
02
03
04
#fastdfs tracker, multiple tracker supported
05
fdfs_tracker = {
06
'host_tuple'[s:2]'192.168.2.233','192.168.2.234'),
07
'port':22122,
08
'timeout':30,
09
'name':'Tracker Pool'
10
}
11
#fastdfs meta db, multiple redisdb supported
12
fdfs_redis_dbs = (
13
('192.168.2.233',6379,0),
14
('192.168.2.233',6379,1)
15
)
转自 开源中国 水熊宝宝 发布于 2013年08月07日 12时, 4评/325阅