Redis使用bloom-filter过滤器实现推荐去重

 更新时间:2020年11月26日 11:48:29   作者:-零  
这篇文章主要介绍了Redis使用bloom-filter过滤器实现推荐去重,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前期准备

redis原生并不带布隆过滤器,需要单独下载并自行编译和加载。

1.下载redisbloom插件(redis官网下载即可)

https://github.com/RedisLabsModules/redisbloom/

wget https://github.com/RedisLabsModules/rebloom/archive/v1.1.1.tar.gz

2.解压,cd、make,make后会生成rebloom.so文件

tar -zxvf v1.1.1.tar.gz
cd redisbloom-1.1.1/
make

3.配置redis.conf文件,在配置文件中加上,目录为rebloom.so文件的目录路径

loadmodule /目录/rebloom.so

4.重新启动redis

redis-server redis.conf

快速使用

创建filter:[bf.reserve key error_rate initial_size]

bf.reserve users 0.001 100000

bf.reserve命令有三个参数,分别是:

  • key:键
  • error_rate:期望错误率,期望错误率越低,需要的空间就越大。
  • capacity:初始容量,当实际元素的数量超过这个初始化容量时,误判率上升。

如果不使用bf.reserve命令创建,而是使用Redis自动创建的布隆过滤器,默认的error_rate是 0.01,capacity是 100。

隆过滤器的error_rate越小,需要的存储空间就越大,对于不需要过于精确的场景,error_rate设置稍大一点也可以。布隆过滤器的capacity设置的过大,会浪费存储空间,设置的过小,就会影响准确率,所以在使用之前一定要尽可能地精确估计好元素数量,还需要加上一定的冗余空间以避免实际元素可能会意外高出设置值很多。总之,error_rate和 capacity都需要设置一个合适的数值。

请查看:https://www.cnblogs.com/-wenli/p/12444639.html

添加元素:[bf.add key options]

bf.add users user3

判断元素是否存在:[bf.exists key options]

bf.exists users user1

添加多个元素:[bf.add key ...options]

bf.madd users user4 user5 user6 user

判断多个元素是否存在:[bf.add key ...options]

bf.mexists users user4 user5 user6 user7 user8

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 深入解析Redis的LRU与LFU算法实现

    深入解析Redis的LRU与LFU算法实现

    这篇文章主要重点介绍了Redis的LRU与LFU算法实现,并分析总结了两种算法的实现效果以及存在的问题,并阐述其优劣特性,感兴趣的小伙伴跟着小编一起来看看吧
    2023-07-07
  • redis实现多级缓存同步方案详解

    redis实现多级缓存同步方案详解

    这篇文章主要介绍了redis实现多级缓存同步方案详解,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • redis执行lua脚本的实现方法

    redis执行lua脚本的实现方法

    redis在2.6推出了脚本功能,允许开发者使用Lua语言编写脚本传到redis中执行。本文就介绍了redis执行lua脚本的实现方法,感兴趣的可以了解一下
    2021-11-11
  • 浅谈Redis哨兵模式高可用解决方案

    浅谈Redis哨兵模式高可用解决方案

    Redis高可用有两种模式:哨兵模式和集群模式,本文基于哨兵模式搭建一主两从三哨兵Redis高可用服务,感兴趣的可以了解一下
    2022-03-03
  • 关于Redis持久化的深入探究

    关于Redis持久化的深入探究

    Redis持久化是将内存中的数据保存到磁盘,以防止数据丢失。Redis提供了两种持久化方式:RDB和AOF,本文将给大家详解介绍Redis持久化,感兴趣的同学可以跟着小编一起来学习
    2023-05-05
  • Redis 密码设置和查看密码的方法

    Redis 密码设置和查看密码的方法

    这篇文章主要介绍了Redis 密码设置和查看密码的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-04-04
  • 关于Redis库存超卖问题的分析

    关于Redis库存超卖问题的分析

    在高并发场景下进行优惠券秒杀测试时,发现由于并发操作导致了超卖问题,即理论上只能卖出100个优惠券,实际卖出了102个,分析原因,是因为在高并发环境下,多个线程同时操作库存,导致数据不一致,提出了两种解决方案:悲观锁和乐观锁
    2024-11-11
  • Redis序列化转换类型报错的解决

    Redis序列化转换类型报错的解决

    本文主要介绍了Redis序列化转换类型报错的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Redis读写分离搭建的完整步骤

    Redis读写分离搭建的完整步骤

    为满足读多写少的业务场景.最大化节约用户成本.云数据库Redis版推出了读写分离规格,为用户提供透明、高可用、高性能、高灵活的读写分离服务,这篇文章主要给大家介绍了关于Redis读写分离搭建的相关资料,需要的朋友可以参考下
    2021-09-09
  • Redis基本数据类型Zset有序集合常用操作

    Redis基本数据类型Zset有序集合常用操作

    这篇文章主要为大家介绍了redis基本数据类型Zset有序集合常用操作,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论