docker下安装redis bloom容器,以及在php、php框架中使用redis布隆过滤器

7 篇文章 0 订阅

docker安装redis bloom容器

#docker-composer.yaml
version: "3.6" # 确定docker-composer文件的版本
services:
  # 代表就是一组服务 - 简单来说一组容器
  # server
  redis:
    # 这个表示服务的名称,课自定义; 注意不是容器名称
    image: redislabs/rebloom # 指定容器的镜像文件
    container_name: php8_redis6_1 # 这是容器的名称
    hostname: php8_redis6_1
    restart: always
    ports:
      # 配置容器与宿主机的端口
      - "9805:6379"
    networks:
      - php8
    volumes:
      - "/www/study/php/redis/1/redis.conf:/usr/lib/redis/redis.conf"
      - "/www/study/php/redis/1/data:/data:rw"
      - "/www/study/php/redis/1/logs:/logs:rw"
    command: redis-server /usr/lib/redis/redis.conf
networks:
  # 自定义网络
  php8:
    driver: bridge

docker exec -it php8_redis6_1 bash
redis-cli
BF.reserve loginFiter 0.1 100000000 #添加布隆过滤器
bf.add # 添加元素
bf.exists # 查询元素是否存在
bf.madd # 一次添加多个元素
del loginFiter # 删除布隆过滤器
在这里插入图片描述
在 redis 中有两个值决定布隆过滤器的准确率:
error_rate:允许布隆过滤器的错误率,这个值越低过滤器的位数组的大小越大,占用空间也就越大。
initial_size:布隆过滤器可以储存的元素个数,当实际存储的元素个数超过这个值之后,过滤器的准确率会下降。
BF.reserve loginFiter 0.1 100000000 # 设置error_rate 与 initial_size的值,
BF.reserve 第一个值是过滤器的名字,第二个值为 error_rate 的值,第三个值为 initial_size 的值

在php中使用redis bloom

<?php
#简单示例
$redis = new \Redis();
$redis->connect('127.0.0.1', 6379);
//先看看布隆过滤器中验证数据是否存在, 如果布隆过滤器说没有,那就肯定没有
$re = $redis->rawCommand('bf.exists', 'loginFiter', '登录用户名');
if($re == 0){
	die("用户不存在");
}
//这里再进入登录流程

在php框架中使用redis布隆过滤器

安装 PHPRedis 扩展,或者使用 composer 安装 predis/predis 包
.dev文件配置redis

REDIS_HOST=192.168.31.22
REDIS_PASSWORD=redis123
REDIS_PORT=9805
REDIS_PREFIX=biny_
<?php
	# 新建一个过滤器,已存在会报错error
    echo Redis::rawCommand('BF.RESERVE', 'loginFilter', 0.1, 1000000);  
    # 向过滤器中添加元素
    echo Redis::rawCommand('BF.ADD', 'loginFilter', '58040087');  # 成功返回 1
    # 判断元素是否在过滤器中
    echo Redis::rawCommand('BF.EXISTS', 'loginFilter', '58040087');  # 存在返回 1
    echo Redis::rawCommand('BF.EXISTS', 'loginFilter', '58040088');  # 不存在返回 0

RedisBoom GitHub地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值