【存储】数据重删压缩

重删压缩是什么?

(个人觉得更好的翻译应该是:删重和压缩)
重删和压缩时完全不同的两种技术,解决不同的问题。       

重删:就是说有很多分相同的数据,我只存储其中一份,其他的重复数据块我保留一个地址引用到这个唯一存储的块即可。

压缩:将一个大字符串中的子串用一个很简短的数字来标记,然后检索该字符串出现的位置,用个简单的字符来替代。从而来减少数据表达所需要的空间,带来空间节省。

比如说用1代表“AB”,用2代表“CD”,然后用255 来代表“hanfute”。1到255只需要8个bit,而“AB”“CD”或者“hanfute”则需要很多的空间,这样多次扫描替代之后,就可以快速的将数据缩减。

用通俗的话说:重删就是讲相同的东西只存储一次,而压缩则是改造数据排布用一种算法来统计数据的排布模式,从而达到减少数据存储的模式。
https://blog.51cto.com/u_13559412/2057144

重删的实现


重删的实现技术比较简单,最简单的使用就比如我们的邮件服务器,我转发一份邮件给100个人,大家收到我的邮件后就会产生100个一样的文件,假设大家的数据盘使用的共享存储,存储只需要在每个人存入文件的时候查询一下这个文件本地有没有,有我就不再存储。这样在存储上就只存储了一个文件。这是一个最朴素的理解。

这里面涉及到几个问题:

1,  存储怎么知道这个文件自己已经存储了?

2,  如果不是存文件,而是块存储该怎么办?

存储怎么知道这个文件自己已经有了呢?


在计算机里面有个技术名字叫做”指纹”,非常的形象生动,就好像每个人的指纹肯定不一样,那么我们是不是可以用一个很小的数据来标记一个文件的唯一信息。

         这里有很多的算法可以快速的得到一个唯一值,比如说MD5算法、Sha算法。

l  Sha算法是一种不可逆的数据加密算法,只能算指纹出来,但是无法通过指纹反推出来内容。

l  他可以经一个小于2^64的数据转化成一个160位的不重复的指纹,最关键的是他的计算还很快。

l  所以比较两个数据是否相同,就可以通过计算他的指纹,然后去对比指纹,而不是进行数据的逐字节比对。效率要高得多。

这个指纹有没有可能重复,比如说两个人的指纹相同?

按照sha256算法,在4.8*10^29个数据中出现两个数据指纹重复的概率大概小于10^-18.10^-18就是我们所说的16个9的可靠性。  

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值