ブロンフィルターの勉強の道
1088 ワード
概要:仕事の中で出会うかもしれなくて、大量のデータの重い仕事を処理して、例えば爬虫類、データの洗浄、大きいデータの量の下でデータが存在するかどうかを判断する必要があります.判断の正確性を少し緩めれば、
評価:もしあなたのデータ量が大きくなくて、千万以下で、しかもredis資源が十分であれば、MD 5のhashアルゴリズムを使って32ビット指紋を生成することができて、redisを利用してデータの重さを行って、もし億級甚だしきに至っては更に多くのデータ量があれば、資源の問題を考慮して、結局redisの価格はやはりとても高くて、この時ブロンを利用して濾過することができます.あるいはredisのようなssdbデータベースを利用すると、効率は低くなるかもしれませんが、redisに少し劣るだけです.しかもハードディスクベースで安いです.
1、インストール
pip3 install pybloom_live
評価:もしあなたのデータ量が大きくなくて、千万以下で、しかもredis資源が十分であれば、MD 5のhashアルゴリズムを使って32ビット指紋を生成することができて、redisを利用してデータの重さを行って、もし億級甚だしきに至っては更に多くのデータ量があれば、資源の問題を考慮して、結局redisの価格はやはりとても高くて、この時ブロンを利用して濾過することができます.あるいはredisのようなssdbデータベースを利用すると、効率は低くなるかもしれませんが、redisに少し劣るだけです.しかもハードディスクベースで安いです.
def md5_(self,str):
md5 = hashlib.md5()
data = str
md5.update(data.encode('utf-8'))
return md5.hexdigest()
1、インストール
pip3 install pybloom_live
。
BloomFilter
は です.ScalableBloomFilter
は に することができる.initial_Capacityは 、error_rateは です.from pybloom_live import ScalableBloomFilter
sbf = ScalableBloomFilter(initial_capacity=1000000000, error_rate=0.000001, mode=ScalableBloomFilter.LARGE_SET_GROWTH)
url = "www.toutiao.com"
url2 = "www.douban.com"
sbf.add(url)
print(url in sbf) # True
print(url2 in sbf) # False
を えると を げ し、