Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }