redis的搭建及应用(五)-布隆过滤器插件

redis布隆过滤器

可以把布隆过滤器理解为bitmap结构,判断某个对象是否存在时,它可能会误判。但是布隆过滤器也不是特别不精确,只要参数设置得合理,它的精确度也可以控制得相对足够精确,只会有小小的误判概率。
总得来说,当布隆过滤器说某个值存在时,这个值可能不存在;当它说某个值不存在时,那就肯定不存在

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/在这里插入图片描述
/20230724024159.png?origin_url=E%3A%5Cdocs%5Cimage%5Cimage-20240102155318057.png&pos_id=img-wHIVNpUJ-1704182370853)

布隆过滤器在项目开发中非常有用,主要应用在如下方面:

  • 黑白名单
  • 内容推广过滤器
  • 爬虫地址url去重
  • 邮件垃圾过滤
  • 防止redis的缓存穿透

下载布隆过滤器插件

使用redis的布隆过滤器插件,实现布隆过滤器的功能。

wget https://github.com/RedisBloom/RedisBloom/archive/v2.2.4.tar.gz

编译

安装gcc
yum -y install gcc
makefile
make

image-20231022223205462

image-20231022223228916

拷贝redisbloom.so到容器

[root@localhost RedisBloom-2.2.4]# docker cp redisbloom.so redis_6379:/usr/local/etc/redis
                                             Successfully copied 334kB to redis_6379:/usr/local/etc/redis

修改配置文件

添加redisbloom.so到MODULES模块

# Load modules at startup. If the server is not able to load modules
# it will abort. It is possible to use multiple loadmodule directives.
#
# loadmodule /path/to/my_module.so
# loadmodule /path/to/other_module.so
loadmodule /usr/local/etc/redis/redisbloom.so

重启容器

docker restart redis_6379
              _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 6.2.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                  
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 1
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           https://redis.io       
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

1:M 20 Jul 2023 14:12:33.987 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
1:M 20 Jul 2023 14:12:33.987 # Server initialized
1:M 20 Jul 2023 14:12:33.987 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 20 Jul 2023 14:12:33.988 * Module 'bf' loaded from /usr/local/etc/redis/redisbloom.so
1:M 20 Jul 2023 14:12:33.989 * Loading RDB produced by version 6.2.6
1:M 20 Jul 2023 14:12:33.989 * RDB age 0 seconds
1:M 20 Jul 2023 14:12:33.989 * RDB memory usage when created 0.77 Mb
1:M 20 Jul 2023 14:12:33.989 # Done loading RDB, keys loaded: 0, keys expired: 0.
1:M 20 Jul 2023 14:12:33.989 * DB loaded from disk: 0.001 seconds
1:M 20 Jul 2023 14:12:33.989 * Ready to accept connections

image-20230720222459922

布隆过滤器命令

BF.ADD

BF.ADD key item

127.0.0.1:6379> bf.add usernames tom
(integer) 1
127.0.0.1:6379> bf.add usernames jack
(integer) 1
BF.EXISTS

BF.EXISTS key item

127.0.0.1:6379> bf.exists usernames tom
(integer) 1
127.0.0.1:6379> bf.exists usernames jack
(integer) 1
127.0.0.1:6379> bf.exists usernames jackx
(integer) 0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/285821.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Pandas数据可视化

pandas库是Python数据分析的核心库 它不仅可以加载和转换数据,还可以做更多的事情:它还可以可视化 pandas绘图API简单易用,是pandas流行的重要原因之一 Pandas 单变量可视化 单变量可视化, 包括条形图、折线图、直方图、饼图等 …

论文解读:A New CNN Building Block for Low-ResolutionImages and Small Objects

引言 之前通过stride和pooling这些下采样操作,但是这些操作都会或多或少丢失图像的信息,所以这不适用于具有低分辨率图像和小物体的更困难的任务上。像池化选择maxpooling或者是averagepooling、卷积的步长(太大的话会丢失信息)都是很头疼的问题&#x…

k8s陈述式资源管理(命令行)

1、资源管理 (1)陈述式资源管理(常用——查、增) 使用kubectl工具进行命令行管理 ①特点:对资源的增删查比较方便,对改不友好 ②优点:90%以上的场景都可以满足 ③缺点:命令冗长…

山海鲸可视化:智慧教育解决方案

山海鲸可视化是一款钻研数字孪生行业的免费数字孪生软件,为各行业提供了许多优质的数字化解决方案,在教育行业,山海鲸可视化为学生和老师提供了全方位的教育资源和智能辅助工具,以提高学习效率和教学质量。作为山海鲸可视化软件的…

基于ThinkPHP的云盘系统Cloudreve本地搭建并实现远程访问

文章目录 1、前言2、本地网站搭建2.1 环境使用2.2 支持组件选择2.3 网页安装2.4 测试和使用2.5 问题解决 3、本地网页发布3.1 cpolar云端设置3.2 cpolar本地设置 4、公网访问测试5、结语 1、前言 自云存储概念兴起已经有段时间了,各互联网大厂也纷纷加入战局&#…

创新技术,助力电力行业:配网故障定位系统的应用与优势

随着科技的不断发展,电力行业也在不断地进行技术创新。在这个过程中,配网故障定位系统作为一种新型的技术手段,为电力行业的安全生产和管理提供了有力的支持。本文将介绍配网行波型故障预警与定位系统的应用与优势,以期为电力行业…

2024年到了!质量工程师如何在这个人工智能的时代中生存?

随着2024年的到来,我们正式步入了一个以人工智能为核心的时代。在这个时代,质量工程师面临的挑战和机遇前所未有,不断更新的技术要求他们必须不断学习和适应。 人工智能在质量管理中的应用 人工智能和机器学习在预测和识别潜在质量问题方面…

再见2023,你好2024!

大家好,我是老三,本来今天晚上打算出去转一转,陆家嘴打车实在太艰难了,一公里多的路,司机走了四十分钟,还没到,再加上身体不适,咳嗽地比较厉害,所以还是宅在酒店里&#…

java面向对象构造器--学习笔记

什麽是构造器? 构造器就是一种特殊的方法,特殊在: 方法名 类名不能写返回值类 只要声明了这么一个特殊的方法,那么这个方法就不叫方法,叫做构造器了 构造器有什么特点? 创建对象时,对象会去…

编程语言的进化:智能化与多样化的未来

作为沟通人类与机器的桥梁,编程语言的发展一直是技术进步的重要推动力。在技术的金字塔上,编程语言作为软件开发的基石,其每一次革新都将引领着信息时代的下一个潮流。从早期的机器码,到现代的高级语言,编程语言的进化…

搭建Python开发环境 Pycharm编程 + 嵌入 (保姆级教程)

搭建环境 这部分也比较简单,因为我们刚初始化的树莓派,就像一个婴儿一样,非常干净,所以流程很轻松。 建立远程连接后,终端输入以下指令: 更新树莓派 sudo apt-get update sudo apt-get upgrade -y 下载…

YOLOv7独家原创改进:提出一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好 | 2023.12.29收录

💡💡💡本文改进:一种新的Shape IoU方法,该方法可以通过关注边界框本身的形状和尺度来计算损失,解决边界盒的形状和规模等固有属性对边界盒回归的影响。 💡💡💡对小目标检测涨点明显,在VisDrone2019、PASCAL VOC均有涨点 收录YOLOv7原创自研 https://blog.csdn…

揭秘真相!云汇优想短视频带货是真的吗?

在数字化浪潮的推动下,短视频带货已成为电商领域的新宠。许多平台如雨后春笋般涌现,云汇优想就是其中之一。然而,面对这样的新兴事物,我们不禁要问:云汇优想短视频带货是真的吗?今天,我们就来一…

异地环控设备如何远程维护?贝锐蒲公英解决远程互联难题

青岛某企业致力于孵化设备、养禽设备和养猪设备的研发、生产和服务,历经三十多年发展,目前已成长为行业主要的养殖装备及工程服务提供商,产品覆盖养殖产业链中绝大多数环节,涉及自动化设备、环控设备、整体解决方案等。 在实际应用…

【算法与数据结构】738、LeetCode单调递增的数字

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:暴力解法如下,思路很简单,从右往左遍历,但是会超时。   程序如下…

牛客周赛 Round 26 解题报告 | 珂学家 | 0-1 BFS + 状态机DP

前言 整体评价 T3是一道0-1 BFS题, 这样时间复杂度可以控制在O(n*m), 也可以用优先队列。 T4这类题型,在牛客Round周赛系列出现好多次了,要么状态机DP,要么容斥,如果n很大,就用矩阵幂优化。 欢迎关注 珂朵莉 牛客周…

pytorch深度学习笔记(共计169页,基于本人听完B站小土堆PyTorch深度学习快速入门教程所写)

一、笔记视频 pytorch深度学习(共计169页,基于本人听完B站小土堆PyTorch深度学习快速入门教程所写) 二、获取方式 方式一: 点击下面的链接 pytorch深度学习笔记 如果链接无法打开 直接复制下方链接即可 https://mall.bilibili.c…

【力扣题解】P501-二叉搜索树中的众数-Java题解

👨‍💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【力扣题解】 文章目录 【力扣题解】P501-二叉搜索树中的众数-Java题解🌏题目描述💡题解&#x1f…

惯性动作捕捉技术如何应用在数字人驱动、虚拟数字人直播、线下活动?

在数字人热潮影响下,数字人逐渐成为品牌营销中不可忽略的一个载体,品牌可以通过数字人进行内容和营销上的创新,拓宽营销边界,那品牌要如何将数字人驱动起来,应用在虚拟数字人直播、短视频、线下活动等场景?…

【接口自动化】写接口自动化case要注意的点!

可能有人会说,写接口的自动化CASE多简单了,写个参数发送请求完事了,还要注意啥? 没错,相比起UI自动化的case,你要去写各种定位器,接口自动化的case写起来确实容易多了。这也是接口自动化的一个…