public async Task TestFilter() { var urls = await File.ReadAllLinesAsync("urls.txt", Encoding.UTF8); var redis = new RedisCache(new RedisCacheOptions { InstanceName = "leaf:bf", Database = 2, Server = "127.0.0.1:6379,abortConnect=false,defaultDatabase=2" }); var bloom = new RedisBloomFilter(redis); var duplication = false; await redis.KeyDelete("test-url"); foreach (var url in urls) { if (!await bloom.TryAdd("test-url", url)) { duplication = true; _output.WriteLine(url); } } await redis.KeyDelete("test-url"); redis.Dispose(); Assert.False(duplication); }
static IMonitorableScheduler InitScheduler() { //var bloomFilter = new MemoryBloomFilter<string>(1000 * 10, 1000 * 10 * 20); var bloomFilter = new RedisBloomFilter <string>(1000 * 10, 1000 * 10 * 20, "127.0.0.1", 6379, true); var scheduler = new SequenceScheduler(bloomFilter); return(scheduler); }