博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis-安装布隆过滤器插件及PHP调用
阅读量:3985 次
发布时间:2019-05-24

本文共 1618 字,大约阅读时间需要 5 分钟。

redis >= 4.0

手册:https://oss.redislabs.com/redisbloom/

一、Linux下安装redis的BloomFilter插件

cd /usr/localwget https://github.com/RedisBloom/RedisBloom/archive/v1.1.1.tar.gztar -zxf v1.1.1.tar.gzcd RedisBloom-1.1.1makelspwd

给redis添加扩展

vi /usr/local/redis-4.0.14/redis.conf	##################### MODULES #################### 	 	loadmodule /usr/local/RedisBloom-1.1.1/rebloom.so INITIAL_SIZE 10000000 ERROR_RATE 0.0001后台启动./src/redis-server redis.conf或者./src/redis-server redis.conf --loadmodule /usr/local/RedisBloom-1.1.1/rebloom.so INITIAL_SIZE 10000000 ERROR_RATE 0.0001netstat -lntp

命令:

新建过滤器:

BF.RESERVE {key} {error_rate} {size}bf.reserve books 0.001 10000

error_rate指容错率,取值范围为(0,1),数值越小,占用内存越大,操作时占用cpu资源 越大。

Size指过滤器的容量,添加的条目数超过此数字后,性能将开始下降。实际降级将取决 于超出限制的程度。随着条目数呈指数增长,性能将呈线性下降。
如果不通过该命令来新建过滤器,bf.add添加值时会自动创建过滤器,但会使用默认的 容量与容错率。

添加过滤器与值:

BF.ADD {newFilter} {foo}

如果过滤器不存在,则会自动创建,使用默认的容量100与容错率0.01。遵循集合的特性,已存在的则添加失败。

批量添加

bf.madd users user4 user5 user6 user7

检查过滤器中是否存在值:

BF.EXISTS {newFilter} {foo}

批量检查

bf.mexists users user4 user5 user6 user7 user8

过滤器创建后容量和容错率就无法改变了。

过滤器中的元素没法删掉。

客户端

./src/redis-cli -p 6380127.0.0.1:6380> bf.add users user1(integer) 1127.0.0.1:6380> bf.add users user1(integer) 0127.0.0.1:6380> BF.EXISTS users user1(integer) 1127.0.0.1:6380> BF.EXISTS users user2(integer) 0

php-redis扩展中有个函数可以调用原始的redis指令:

$redis = new \Redis();$redis->connect('127.0.0.1', 6380);$re = $redis->rawCommand('bf.add', 'users', 'user2');var_dump($re);

添加:在向redis set值的之后,调用bf.add添加到过滤器。

检查:在穿过了redis去到Mysql之前,调用bf.exists检查一下,如果不存在。

布隆过滤器可以用在查询和写入分开的业务模式下,一个业务会把key写入redis和BF,另一个业务来搜索查找这个key。

如果get和set在同一个地方就不能用BF啦。

转载地址:http://ygxui.baihongyu.com/

你可能感兴趣的文章
剑指Offer:字符流中第一个不重复的字符
查看>>
剑指Offer:链表中环的入口节点
查看>>
剑指Offer:数据流中的中位数
查看>>
剑指Offer:滑动窗口的最大值
查看>>
Qt组态图片区域事件响应
查看>>
一张图片与它的掩码 mask 蒙板
查看>>
GIMP 画布适应选区
查看>>
QSqlQuery执行多条Sql语句的方法
查看>>
渐变矩阵
查看>>
制作图像素材时,背景图片中的区域位置坐标定位
查看>>
渐变时间点计算
查看>>
实时监控组态监控
查看>>
控件坐标位置自适应算法
查看>>
自动恒温灌溉组态软件
查看>>
qss中类选择器.的重要性
查看>>
最近做的一个小工具
查看>>
freetype提取字模
查看>>
UI中经过需要临时new对象,那么该如何delete呢?
查看>>
QTcpSocket在收到disconnect数据丢失的问题
查看>>
视频监控那点事儿(复制别人的)
查看>>