|
@@ -0,0 +1,20 @@
|
|
|
+package org.hswebframework.web.counter.redis;
|
|
|
+
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
+import org.hswebframework.web.concurrent.counter.AbstractBoomFilterManager;
|
|
|
+import org.hswebframework.web.concurrent.counter.BloomFilter;
|
|
|
+import org.redisson.api.RBloomFilter;
|
|
|
+import org.redisson.api.RedissonClient;
|
|
|
+import org.redisson.client.codec.StringCodec;
|
|
|
+
|
|
|
+@AllArgsConstructor
|
|
|
+public class RedisBloomFilterManager extends AbstractBoomFilterManager {
|
|
|
+
|
|
|
+ private RedissonClient redissonClient;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected BloomFilter createBloomFilter(String name) {
|
|
|
+ RBloomFilter<String> filter = redissonClient.getBloomFilter("hsweb:bloom-filter:" + name, StringCodec.INSTANCE);
|
|
|
+ return filter::add;
|
|
|
+ }
|
|
|
+}
|