前言
redis在4.0版本以后可通過插件的形式添加布隆過濾器,以下為具體操作。
操作
在https://github.com/RedisBloom/RedisBloom下載最新的release源碼,在編譯服務器進行解壓編譯:
tar zxvf RedisBloom-1.1.1.tar.gz
cd RedisBloom-1.1.1
make
得到動態庫rebloom.so
啟動redis時,如下啟動即可加載bloom filter插件
./redis-server /usr/local/redis/conf/redis_6380.conf --loadmodule /usr/local/redis/src/rebloom.so INITIAL_SIZE 10000000 ERROR_RATE 0.0001
指定了默認的容量與容錯率
命令:
新建過濾器:
BF.RESERVE {key} {error_rate} {size}
error_rate指容錯率,取值范圍為(0,1),數值越小,占用內存越大,操作時占用cpu資源 越大。
Size指過濾器的容量,添加的條目數超過此數字后,性能將開始下降。實際降級將取決 於超出限制的程度。隨着條目數呈指數增長,性能將呈線性下降。
如果不通過該命令來新建過濾器,bf.add添加值時會自動創建過濾器,但會使用默認的 容量與容錯率。
添加過濾器與值:
BF.ADD {newFilter} {foo}
如果過濾器不存在,則會自動創建,使用默認的容量與容錯率。
檢查過濾器中是否存在值:
BF.EXISTS {newFilter} {foo}
參考:
https://baijiahao.baidu.com/s?id=1611754128562106165&wfr=spider&for=pc
https://oss.redislabs.com/redisbloom/Bloom_Commands/