1 需求背景
文件存储在一个文件夹内,每一个文件很小,但是数量很多,文件总量不是特别大,大约在10G以下
2 好处
1 与文件存储在本地磁盘进行比较,性能更好,资源使用率更小
2 减少了分布式情况下,文件不一致的情况
3 如何开发
1 如何把文件存储到redis
2 如何从redsi中读取文件
4 代码
4.1 存
1 如何把文件存储到redis中代码 ,redis使用的是spring boot 的 RedisTemplate
2 把文件转换为一个二进制数组,并且用Base64进行字符串加密存储为String 类型存储到redis中
FileInputStream fileInputStream = new FileInputStream(new File(FILE_DIR));
byte[] b = new byte[fileInputStream.available()];
fileInputStream.read(b);
String value = Base64.getEncoder().encodeToString(b);
redisTemplateClient.set(FILE_DIR, value);
4.2 取
1 从redis中取出得数据为String类型的,将String类型的对象使用Base64解密为二进制数组
2 二进制数组可轻松构架你需要的文件类型
Object obj = redisTemplateClient.get(tile);
byte[] bytes = Base64.getDecoder().decode(obj.toString());