WebReaper.Redis
11.3.0
dotnet add package WebReaper.Redis --version 11.3.0
NuGet\Install-Package WebReaper.Redis -Version 11.3.0
<PackageReference Include="WebReaper.Redis" Version="11.3.0" />
<PackageVersion Include="WebReaper.Redis" Version="11.3.0" />
<PackageReference Include="WebReaper.Redis" />
paket add WebReaper.Redis --version 11.3.0
#r "nuget: WebReaper.Redis, 11.3.0"
#:package WebReaper.Redis@11.3.0
#addin nuget:?package=WebReaper.Redis&version=11.3.0
#tool nuget:?package=WebReaper.Redis&version=11.3.0
WebReaper.Redis
Redis adapters for WebReaper: a distributed scheduler, visited-link tracker, result sink, and Redis-backed scraper-config and cookie storage. Swapping the scheduler + config storage + link tracker to Redis lets multiple workers share crawl state.
Satellite package (ADR-0009): the Redis adapters are kept out of the WebReaper
core so the core stays dependency-light and Native-AOT-clean. All adapters in
this package share one ConnectionMultiplexer per connection string
(ADR-0005), preserved intra-package.
Install
dotnet add package WebReaper.Redis
Pulls WebReaper (the core) as a dependency.
Usage
Adds WriteToRedis, WithRedisScheduler, TrackVisitedLinksInRedis,
WithRedisConfigStorage and WithRedisCookieStorage to
ScraperEngineBuilder:
using WebReaper.Builders;
using WebReaper.Redis;
var engine = await ScraperEngineBuilder
.Crawl("https://example.com/catalog")
.Extract(new() { new("title", "h1"), new("price", ".price") })
.WithRedisScheduler("localhost:6379", queueName: "jobs")
.TrackVisitedLinksInRedis("localhost:6379", redisKey: "visited")
.WriteToRedis("localhost:6379", redisKey: "results")
.BuildAsync();
await engine.RunAsync();
License
MIT (ADR-0017). Part of the WebReaper project.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
- StackExchange.Redis (>= 2.13.1)
- WebReaper (>= 11.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
10.0.0 (breaking): RedisOutstandingWorkLatch follows the core's collapsed credit protocol (ADR-0032); SignalProcessedAsync takes a child count and the latch does one Redis round-trip per call instead of two; RedisScheduler drops Complete() (ADR-0037; termination is consumer-cancel of GetAllAsync, so durable schedulers no longer hang on StopWhenAllLinksProcessed); RedisVisitedLinkTracker + RedisScheduler implement IAsyncInitializable (ADR-0033). Custom Redis subclasses adopting either seam re-signature. MIT relicense (ADR-0017). Requires WebReaper 10.0.0. 9.0.0: lockstep republish against the core 9.0.0 (ADR-0023). No functional change. 8.0.0: ADR-0022; adds RedisOutstandingWorkLatch (the distributed Outstanding-work latch: atomic INCRBY/DECRBY + a SET-NX one-shot fence so end-of-crawl fires exactly once under at-least-once redelivery) and an atomic-SADD RedisVisitedLinkTracker.TryAddVisitedLinkAsync (the distributed idempotency authority). 7.0.0: initial release. Redis scheduler, visited-link tracker, sink and Redis-backed scraper-config and cookie storage (ScraperEngineBuilder.WithRedisScheduler / TrackVisitedLinksInRedis / WriteToRedis / WithRedisConfigStorage / WithRedisCookieStorage), all sharing one ConnectionMultiplexer per connection string (ADR-0005).