1 unstable release
0.1.0 | Jan 9, 2024 |
---|
#45 in #duplicate
42KB
1K
SLoC
single_filter
Filter duplicate keys
quick start
In a distributed environment, filter a single key.
let strategy =
BloomExpandStrategy::build_from_redis("biz02", "redis://:root@127.0.0.1/")
.unwrap();
let pool = FiltersPool::from(strategy);
let exists = pool.contain("user001","key001".into()).await.unwrap();
assert_eq!(exists,false);
pool.insert("user001","key001".into()).await.unwrap();
let exists = pool.contain("user001","key001".into()).await.unwrap();
assert_eq!(exists,true);
batch
In a recommendation system, you can call the system in batches, but this method has concurrency problems for the same group.
pool.batch_contain(group, keys).await.unwrap();
pool.batch_insert(group, keys).await.unwrap();
expansion strategy
- set_strategy_fixed : Expand to a fixed size
- set_strategy_ladder : Use fixed policies to expand capacity
- set_strategy_function : User-defined expansion mode
other
grpc service and docker image need to be improved
Dependencies
~19–30MB
~525K SLoC