redis的安装及布隆过滤器安装

这篇具有很好参考价值的文章主要介绍了redis的安装及布隆过滤器安装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

redis安装

IP

mysql: 172.18.12.2 ~ 12.9

redis: 172.18.12.10 ~172.18.12.19

创建redis文件

/usr/local/software

mkdir redis

redis下创建6379文件夹

mkdir 6380

创建conf、data文件夹

/usr/local/software/redis/6380

    [root@localhost redis]# cd 6380
    [root@localhost 6379]# mkdir conf
    [root@localhost 6379]# mkdir data

上传redis.conf配置文件

redis的安装及布隆过滤器安装,redis,数据库,缓存

创建容器

    docker run -it \
    --name redis_6380 \
    --privileged \
    -p 6380:6379 \
    --network wn_docker_net \
    --ip 172.18.12.11 \
    --sysctl net.core.somaxconn=1024 \
    -e TIME_ZONE="Asia/Shanghai" -e TZ="Asia/Shanghai" \
    -v /usr/local/software/redis/6379/conf/redis.conf:/usr/local/etc/redis/redis.conf \
    -v /usr/local/software/redis/6379/data/:/data \
    -d redis \
    /usr/local/etc/redis/redis.conf

成功结果:

redis的安装及布隆过滤器安装,redis,数据库,缓存

上传插件

redis的安装及布隆过滤器安装,redis,数据库,缓存

解压

    [root@localhost 6379]# tar -zxvf RedisBloom-2.2.4

成功:

redis的安装及布隆过滤器安装,redis,数据库,缓存

redis布隆过滤器

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

redis的安装及布隆过滤器安装,redis,数据库,缓存

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

  • 黑白名单
  • 内容推广过滤器
  • 爬虫地址url去重
  • 邮件垃圾过滤
  • 防止redis的缓存穿透
  • redis的安装及布隆过滤器安装,redis,数据库,缓存

下载布隆过滤器插件

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

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

编译

安装gcc
    yum -y install gcc
redis的安装及布隆过滤器安装,redis,数据库,缓存
makefile
make

redis的安装及布隆过滤器安装,redis,数据库,缓存

redis的安装及布隆过滤器安装,redis,数据库,缓存

拷贝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

redis的安装及布隆过滤器安装,redis,数据库,缓存

修改配置文件

添加redisbloom.so到MODULES模块

使用

vim redis.conf

查看redis.conf文件内容

    # 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

redis的安装及布隆过滤器安装,redis,数据库,缓存

重启容器

docker restart redis_6379

redis的安装及布隆过滤器安装,redis,数据库,缓存

使用

docker logs redis_6380

查看redis

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

1:M 18 Jan 2024 19:20:11.792 # Server initialized
1:M 18 Jan 2024 19:20:11.792 # 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 18 Jan 2024 19:20:11.792 # Module /usr/local/etc/redis/redisbloom.so failed to load: /usr/local/etc/redis/redisbloom.so: cannot open shared object file: No such file or directory
1:M 18 Jan 2024 19:20:11.792 # Can't load module from /usr/local/etc/redis/redisbloom.so: server aborting
[root@localhost conf]# 

redis的安装及布隆过滤器安装,redis,数据库,缓存

布隆过滤器命令

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文章来源地址https://www.toymoban.com/news/detail-810226.html

    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

到了这里,关于redis的安装及布隆过滤器安装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Redis 布隆过滤器的原理和实践

    布隆过滤器是一种空间效率高、误判率可控的数据结构,通常用于检索一个元素是否在一个集合中。它是由一个比特向量和多个哈希函数组成的。布隆过滤器可以用于快速检测一个元素是否存在于一个集合中,其主要优点是省内存缺点是有一定的误识别率和删除困难。 Redis

    2024年02月09日
    浏览(32)
  • Redis系列--布隆过滤器(Bloom Filter)

    在实际开发中,会遇到很多要判断一个元素是否在某个集合中的业务场景,类似于垃圾邮件的识别,恶意ip地址的访问,缓存穿透等情况。类似于缓存穿透这种情况,有许多的解决方法,如:redis存储null值等,而对于垃圾邮件的识别,恶意ip地址的访问,我们也可以直接用 H

    2024年02月09日
    浏览(32)
  • Redis系列16:聊聊布隆过滤器(原理篇)

    Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5:深入分析Cluster 集群模式 追求性能极致:Redis6.0的多线程模型 追求性能极致:客户端缓存带来的革命 Redis系列8:Bitmap实现

    2024年02月08日
    浏览(32)
  • Redis之布隆过滤器(Bloom Filter)解读

    目录 引进前言 隆过滤器定义 隆过滤器原理  布隆过滤器优缺点 布隆过滤器的使用场景 布谷鸟过滤器(了解)  引进前言 在实际开发中,会遇到很多要 判断一个元素是否在某个集合中 的业务场景,类似于垃圾邮件的识别,恶意ip地址的访问,缓存穿透等情况。类似于缓存穿透

    2024年02月09日
    浏览(27)
  • Springboot 在 redis 中使用 Guava 布隆过滤器机制

    在 pom.xml 文件中,引入Spring Boot和Redis相关依赖 创建一个布隆过滤器配置类 BloomFilterConfig : 创建一个BloomFilterController。使用布隆过滤器判断数据是否存在,从而避免缓存穿透: 向里面添加元素  获取元素

    2024年02月12日
    浏览(28)
  • Springboot 在 redis 中使用 BloomFilter 布隆过滤器机制

    在 pom.xml 文件中,引入Spring Boot和Redis相关依赖 创建一个布隆过滤器配置类 BloomFilterConfig : 创建一个BloomFilterController。使用布隆过滤器判断数据是否存在,从而避免缓存穿透: 向里面添加元素  获取元素

    2024年02月13日
    浏览(29)
  • Redis布隆过滤器的原理和应用场景,解决缓存穿透

    目录 一、redis 二、布隆过滤器 三、缓存穿透问题 四、布隆过滤器解决缓存穿透   Redis(Remote Dictionary Server)是一种开源的内存数据存储系统,也是一个使用键值对(Key-Value)方式的高性能数据库。Redis以其快速、灵活和丰富的数据结构而闻名,常用于缓存、队列、实时数据

    2024年02月13日
    浏览(31)
  • python使用布隆过滤器筛选数据

    它是一种独特的数据结构,用以判断:一个数据 可能存在 或 一定不存在 算法思路: 开一个指定长度的数组,将所有的元素值设为0 添加元素时,执行hash,得到多个位置下标,将数组对应位置设置为1 检查元素是否存在时,执行hash,得到多个位置下标,查看数组中对应下标

    2023年04月08日
    浏览(33)
  • 【C++】位图/布隆过滤器+海量数据处理

    ✍ 作者 : 阿润菜菜 📖 专栏 : C++ 题目 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 大多数人上来会想到这两种方法:1. 遍历,时间复杂度O(N)2. 排序(O(NlogN)),利用二分查找: logN 但是第一种效率太低了,需要一个

    2024年02月06日
    浏览(37)
  • C++【位图/布隆过滤器—海量数据处理】

    先看下面的一道题 : 1.有40亿个不重复的无符号整数,无序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 如果我们放到哈希表或红黑树中或用排序和二分查找这两种方法。 前两种方法不可行,因为40亿个整数占用大约16G的内存空间,第一要排序需要先把数

    2024年02月09日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包