天天看點

redis-布隆過濾器 和 hyperLogLog --》 去重操作相關

  • HyperLogLog
    • 應用場景: 比如做單網站今日UV統計的時候,把每個使用者都加到hyperloglog裡面,最後直接統計hpyerloglog的數量就好了
    • 特點 : 1,不會記錄元素的内容 2,單個key提供去重計數統計,但是會有誤差
    • 優點 : 12 KB 記憶體,就可以計算接近 2^64 個不同元素
    • 缺點 : 标準誤差是:0.81%
    • 實作原理:數學機率論
  • 布隆過濾器
    • 應用場景
      • 使用者内容推薦,避免推薦已經推薦過的資料
      • 資料庫查詢優化:查詢請求發出時,可以根據這個請求判定某個row存在不,如果布隆過濾器說不存在,則肯定不存在。如果說存在才去查詢磁盤
    • 特點:當布隆過濾器說某個值存在時,這個值可能不存在;當它說不存在時,那就肯定不存

      在。

    • 實作原理:https://www.cnblogs.com/allensun/archive/2011/02/16/1956532.html
    • 基本指令:
      • bf.add
      • bf.exists
    • 參數設定:bf.reserve
      • error_tate 錯誤率
      • initial_size 預計放入的元素值
      • 舉例: bf.reserver “test_key” 0.001 50000
    • ps:redis 4.0 之後開始提供

繼續閱讀