ScrapyでRedisを使う場合に
Scrapy-Redisが有名です。
どうRedisが使われているかを少し書きます。
リクエストのキューと重複チェックのリストがRedisに格納されます。
リクエストのキュー
「[spider name]:requests」という名前のzset型
http://scrapy-redis.readthedocs.io/en/stable/_modules/scrapy_redis/scheduler.html
Parameters込みのURLが並んでいます。
Request objects
重複チェックのリスト
「[spider name]:dupefilter」という名前のset型
重複するrequestsを排除するためにfingerprint(Hash値?)を持っています。
ScrapyのArchitecture overviewとRedis
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
という設定でSchedulerがRedisを使います。
最後に
なんらかの原因でScrapyが止まってしまっても、
リクエストのキューが残っていれば、そこから再開され、
重複チェックのリストもあれば、
既にクロールしたURLにはアクセスせずに続けることができます。