布隆过滤器

讲个使⽤场景,⽐如我们在使⽤新闻客户端看新闻时,它会给我们不停地推荐新的内容,它每次推荐时要去重,去掉那些已经看过的内容。问题来了,新闻客户端推荐系统如何实现推送去重的?你会想到服务器记录了⽤户看过的所有历史记录,当推荐系统推荐新闻时会从每个⽤户的历史记录⾥进⾏筛选,过滤掉那些已经存在的记录。问题是当⽤户量很⼤,每个⽤户看过的新闻⼜很多的情况下,这种⽅式,推荐系统的去重⼯作在性能上跟的上么?
Redis 官⽅提供的布隆过滤器到了 Redis 4.0 提供了插件功能之后才正式登场。布隆过滤器作为⼀个插件加载到 Redis Server 中,给Redis 提供了强⼤的布隆去重功能。
作为一个插件需要安装。
布隆过滤器有⼆个基本指令,bf.add 添加元素,bf.exists 查询 元素是否存在,它的⽤法和 set 集合的 sadd 和 sismember 差不 多。注意 bf.add 只能⼀次添加⼀个元素,如果想要⼀次添加多 个,就需要⽤到 bf.madd 指令。同样如果需要⼀次查询多个元素是 否存在,就需要⽤到 bf.mexists 指令。
原文地址:https://www.cnblogs.com/hanmengya/p/10966737.html