布隆過濾器
Redis 官方提供的布隆過濾器到了 Redis 4.0 提供了插件功能之后才正式登場侥啤。布隆過濾
器作為一個插件加載到 Redis Server 中,給 Redis 提供了強(qiáng)大的布隆去重功能
特性
當(dāng)布隆過濾器說某個值存在時框杜,這個值可能不存在;當(dāng)它說不存在時馍资,那就肯定不存
在
如何安裝
- 模塊文檔:https://redis.io/modules
- bloom模塊:https://github.com/RedisBloom/RedisBloom
- bloom模塊release版本:https://github.com/RedisBloom/RedisBloom/releases
下載并編譯
[root]# wget "https://github.com/RedisBloom/RedisBloom/archive/v2.2.0.tar.gz"
[root]# tar zxvf v2.2.0.tar.gz
[root]# cd RedisBloom-2.2.0/
[root]# make
[root]# ll
-rwxr-xr-x 1 root root 331600 Mar 16 20:15 redisbloom.so
加載
./redis-server ./../redis.conf --loadmodule /opt/cache/RedisBloom-2.2.0/redisbloom.so
使用
- 自定義參數(shù)
<! --默認(rèn)值穴店,格式為 bf.reserve key error_rate initial_size-->
127.0.0.1:6379> bf.reserve email 0.01 100
OK
- 新增
127.0.0.1:6379> bf.add emai liyi@163.com
(integer) 1
127.0.0.1:6379> bf.add emai liyi2@163.com
(integer) 1
<! ---重復(fù)添加膀捷,返回值0-->
127.0.0.1:6379> bf.add emai liyi2@163.com
(integer) 0
- 獲取
<! ---不存在迈嘹,一定不存在-->
127.0.0.1:6379> bf.exists emai liyi@163.com1
(integer) 0
<! ---存在削彬,可能不存在-->
127.0.0.1:6379> bf.exists emai liyi@163.com
(integer) 1