日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

ubuntu16.04安装,使用redis布隆过滤器示例

發布時間:2024/2/28 Ubuntu 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ubuntu16.04安装,使用redis布隆过滤器示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡言

1. 環境:ubuntu16.04,redis版本:5.0.7,布隆過濾器實現版本:RedisBloom1.1.1

2. 默認情況,下載安裝redis時是不帶布隆過濾器功能的,它是以插件的形式提供服務,需要手動加載(修改配置文件后重啟redis或者用命令module load來動態加載)

3. RedisBloom的官方地址:https://github.com/RedisBloom/RedisBloom

4. 預設布隆過濾器的空間時,如果不知道誤判率,容量,實際占用空間,哈希函數個數設置多少合適,可以在這個網站計算?https://hur.st/bloomfilter/?n=10000&p=0.001&m=&k=

下載安裝

1. 運行命令?wget https://github.com/RedisLabsModules/rebloom/archive/v1.1.1.tar.gz,我們這里下載的是1.1.1版本,還有其他版本供選擇

2. 運行命令?tar -zxvf v1.1.1.tar.gz 解壓,解壓后的文件夾如下

3. 進入目錄?RedisBloom-1.1.1后,運行命令 make 即可編譯出so文件,如下

4. 打開我們redis-server用的配置文件redis.conf,在MODULES模塊下添加一行 loadmodule /usr/local/redis/redis-stable/RedisBloom-1.1.1/rebloom.so,?如下圖

5. 重新啟動redis-server(注意:一定要使用我們剛才修改的redis.conf配置文件),連接進redis,運行命令可以查看所有已加載的module,可以看到布隆過濾器(模塊名:bf,版本:10101)

使用示例

1. bf.add 往一個布隆過濾器中添加單個元素(若該過濾器不存在時,會自動創建),成功添加返回1,失敗返回0

2. bf.madd 往一個布隆過濾器中添加多個元素(若該過濾器不存在時,會自動創建),返回一個數組,和請求參數一一對應,成功的為1,失敗的為0

3. bf.exists 判斷是否存在一個元素,存在的返回1,不存在的返回0,注意:布隆過濾器的最大特點,它返回0時表示元素一定不存在;返回1時元素大概率是存在的,極小概率不存在,這個誤判概率到底有多大決定于我們給它的配置

4. bf.mexists 判斷多個元素是否存在,返回一個數組,和請求參數一一對應,存在的為1,不存在的為0,注意:同樣存在誤判概率

5. bf.debug 查看一個布隆過濾器的信息

第一行的size表當前元素數,這里為7,注意這個值很大時不一定準確

第二行表第一層數據塊的信息,我們沒有使用bf.reserve指定配置時,布隆過濾器會自動初始化,當添加的元素超過當前容量時,會自動初始化下一層數據塊

bytes 表該層數據的字節數,128也就是128字節

bits 表該層數據的位數,1024也就是1024個位,其實就是前面的128字節*8=1024位

hashes 表哈希函數的個數

hashwitdth 不清楚,以后再研究

capacity 表該層的最大容量,106表最多可以放106個元素

size 表該層目前的元素數

ratio 表誤判率,就是前面的bf.exists返回的誤判率

6. bf.reserve 預設一個布隆過濾器的初始值,參數依次為:過濾器名字,誤判率,容量,容量只是我們建議的容量,它會根據實際情況調整

技巧

如果不知道誤判率,容量,實際占用空間,哈希函數個數這些設置多少合適,可以到這個網站上計算?https://hur.st/bloomfilter/?n=10000&p=0.001&m=&k=?輸入容量,誤判率后它會自動計算出來

如下圖所示:

預設容量為10000,誤判率為0.001(也就是0.1%)時,最佳的哈希函數是10個(這個影響布隆過濾器的效率),預計占用容量17.55K

你可以單獨修改容量,這時哈希函數的個數就會增加;也可以單獨修改哈希函數的個數,這時容量就會增加

想要最佳容量和性能時,建議使用它給的數值即可,這個是最優解,至于其中的數學證明知乎上有一篇不錯文章可以自行搜索

總結

以上是生活随笔為你收集整理的ubuntu16.04安装,使用redis布隆过滤器示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。