软件简介

这是一个redisson实现的可删除布隆过滤器

引入依赖包

<dependency>
  <groupId>com.github.slacrey</groupId>
  <artifactId>redisson-extend</artifactId>
  <version>1.1.2150</version>
</dependency>

创建Redisson连接

Config config = new Config();
        config.useSingleServer().setAddress("redis://127.0.0.1:6379");
        RedissonClientExtend redissonClientExtend = RedissonExtend.create(config);

创建过滤器

RCountingBloomFilter<String> bloomFilter = redissonClientExtend.getCountingBloomFilter("test2", 3);

getCountingBloomFilter(name, repeat)

  • name 过滤器名称
  • repeat 可重复次数

初始化过滤器

bloomFilter.tryInit(10000, 0.0001D);

boolean tryInit(long expectedInsertions, double falseProbability);
  • expectedInsertions 容量
  • falseProbability 错误率

使用方式

bloomFilter.add("test1");
bloomFilter.contains("test1")
bloomFilter.remove("test1")
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
2014/05/10 07:53

griddle - 基于CountingBloomFilter实现的轻量级过滤组件

griddle是基于CountingBloomFilter实现的一个轻量级通用过滤组件,可用于限制用户投票数等场景,是CountingBloomFilter算法与具体业务之间的一座“桥梁”,使用简单方便。 项目已托管到OSC Git和GitHub上,README文档中有详细说明,欢迎交流: http://git.oschina.net/jxqlovejava/griddle https://github.com/jxqlovejava/griddle...

3
2
2016/04/17 02:07

高并发系统设计之开放平台API接口调用频率控制系统

先描述下基本场景: 系统API接口日均调用次数预计1亿次,提供5台服务器。 需要做两种层面的控制: > 单IP、单应用每小时调用次数不超过10000次 > 单应用、单用户、单接口每小时调用次数不超过1000次 要求每次对频控系统的调用的响应时间在20ms内。 此外,应用开发者和开放平台所属公司关心调用次数统计数据,如当天某应用所有接口被调用总次数、当天某应用某接口被调用次数、当天某应用用户使用数等。 根据上面,我们可以直接得...

0
26
发表于服务端专区
2014/03/28 00:33

内存数据跨天原子切换设计与实现

问题背景 在开发积分系统过程有一个业务需求: 用户每天可以通过分享或邀请获得相应的积分,但每天分享或邀请次数有上限。比如分享到QQ空间每天最多前2次可以获得积分,而分享到新浪微博每天最多前3次可以获得积分。 考虑到用户赚取/消费积分行为很频繁,对应的积分流水表也会很大,所以不可能每次都直接查询积分流水表来判断是否达到次数限制。 然后可能有人会选择另外开辟一张表记录每个用户每天已分享次数,分享前先去查询下...

24
6
2014/09/11 19:52

开放平台API接口调用频率控制系统设计浅谈

先描述下基本场景: 系统API接口日均调用次数预计1亿次,提供5台服务器。 需要做两种层面的控制: > 单IP、单应用每小时调用次数不超过10000次 > 单应用、单用户、单接口每小时调用次数不超过1000次 要求每次对频控系统的调用的平均响应时间在1ms内。 此外,应用开发者和开放平台所属公司关心调用次数统计数据,如当天某应用所有接口被调用总次数、当天某应用某接口被调用次数、当天某应用用户使用数等。 根据上面,我们可以直接...

17
141
2018/07/02 09:01

[216]BloomFilter——大规模数据处理利器

Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一、实例 为了说明Bloom Filter存在的重要意义,举一个实例: 假设要你写一个网络蜘蛛(web crawler)。由于网络间的链接错综复杂,蜘蛛在网络间爬行很可能会形成“环”。为了避免形成“环”,就需要知道蜘蛛已经访问过那些URL。给一个URL,怎样知道蜘蛛是否已经访问...

0
0
2019/10/18 10:06

布隆过滤器

### 什么是布隆过滤器 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data structure),特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。 相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少,但是缺点是其返回的结果是概率性的,而不是确切的。 ### 实现原理 与HashMap比较想象,不同之处在于布隆过滤器是存储的Bit位数组,内容值只有1 与 0 非常显著...

0
0
发表了博客
2013/07/25 10:48

Bloom Filter 大规模数据处理利器

最近工作中涉及到bloom Filter,真是一把科研利器呀,大数据、网络、云等等都可以用到! Bloom Filter是由Bloom在1970年提出的一种多哈希函数映射的快速查找算法。通常应用在一些需要快速判断某个元素是否属于集合,但是并不严格要求100%正确的场合。 一. 实例   为了说明Bloom Filter存在的重要意义,举一个实例:   假设要你写一个网络蜘蛛(web crawler)。由于网络间的链接错综复杂,蜘蛛在网络间爬行很可能会形成“环”...

0
5
发表于开发技能专区
2019/06/16 12:31

[大数据量]布隆过滤器(Bloom Filter)适用类型以及具体示例

一、Bloom Filter算法适用的场合 示例: 1)已知某个文件内包含一些电话号码,每个号码为8位数字,统计不同号码的个数。 8位最多99 999 999,大概需要99m个bit,大概10几m字节的内存即可。 (可以理解为从0-99 999 999的数字,每个数字对应一个Bit位,所以只需要99M个Bit==1.2MBytes,这样,就用了小小的1.2M左右的内存表示了所有的8位数的电话) 2)2.5亿个整数中找出不重复的整数的个数,内存空间不足以容纳这2.5亿个整数。 将b...

0
0
2014/06/09 20:32

一次线上GC故障解决过程记录

排查了三四个小时,终于解决了这个GC问题,记录解决过程于此,希望对大家有所帮助。本文假定读者已具备基本的GC常识和JVM调优知识,关于JVM调优工具使用可以查看我在同一分类下的另一篇文章: http://my.oschina.net/feichexia/blog/196575 背景说明 发生问题的系统部署在Unix上,发生问题前已经跑了两周多了。 其中我用到了Hadoop源码中的CountingBloomFilter,并将其修改成了线程安全的实现(详情见:AdjustedCountingBloomFi...

2
13
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
5 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部