专栏首页家劲Redis 七月小说网的爬虫缓存设计

Redis 七月小说网的爬虫缓存设计

一、爬虫策略

1.主服务器先根据spider.all set排重,再 lpush request_url 到spider.wait List中,并且 sadd request_url 到 set中; 2.两台从服务器 brpop 出最后一条url 进行解析,再抓取数据;

二、缓存策略

1.主服务器通过爬取各类排行榜或首页等Book集合、简短字段的页面 创建多个不同key的Hash

expect => create {"siteId_bookId": Hash} 

2.从服务器通过爬书详细页 更新单个key的部分Hash字段, 创建章节有序集合存放章节id ,生成request_url到spider.wait中

expect =>  
update {"siteId_bookId": Hash} , 
create {"siteId_bookId_chapters": Sort Set}

3.从服务器通过爬章节详细页 创建章节Hash对象

expect => create {"siteId_bookId_chapterId": Hash}

4.从主服务器归并两个hash对象和一个sort set对象,生成Book信息导入数据库。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 16 个超级实用的 Java 工具类

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。

    良月柒
  • PHP垃圾回收机制

    PHP 是一门托管型语言,在 PHP 编程中,程序员不需要手工处理内存资源的分配与释放(使用 C 编写 PHP 或 Zend 扩展除外),这就意味着 PHP 本...

    卡二条的技术圈子
  • PHP读取大文件源码示例-Swoole多进程读取大文件

    在日常读取文件时,若文件 不是很大,通常使用file_get_contents,将内容一次性载入的变量中,也可以远程加载网页或者远端文件。

    Eller
  • Serverless实践系列(八):如何优雅地给网站图片加水印

    前言 很多论坛、博客在进行图片上传之后,都会给自己的图像加上水印,这样可以证明这张图片「属于我」或者是「来自我的博客/网站」。 传统的加水印的方法,通常是在流...

    腾讯云serverless团队
  • 给中级Python开发者的13个练手项目,适合你不?

    该项目设计的主要目标是聚合内容。首先,我们需要知道内容聚合器从哪些站点获取内容。然后,使用请求库来发送 HTTP 请求,并使用 BeautifulSoup 解析...

    用户1737318
  • vue-router的hash和history模式的区别

    对于 Vue 这类渐进式前端开发框架,为了构建 SPA(单页面应用),需要引入前端路由系统,这也就是 Vue-Router 存在的意义。前端路由的核心,就在于 ...

    咻咻ing
  • 【Python】13 个适合『中级开发者』练手的项目

    该项目设计的主要目标是聚合内容。首先,我们需要知道内容聚合器从哪些站点获取内容。然后,使用请求库来发送 HTTP 请求,并使用 BeautifulSoup 解析...

    昱良
  • Django中的url与视图详解(3)

    可能你学习到这里,感觉好乱,所将的知识点没有一丝的关联,这个是没有办法的,Django与Flask有所不同的,Django是结构化的,每个模块都有知识点,我们只...

    xbhog
  • Ripple区块链对接PHP开发包【瑞波币/XRP】

    XrpTool可以帮助PHP应用快速接入瑞波/Ripple区块链, 即支持部署自有Ripple节点的应用场景,也支持利用公开的Ripple节点广播离线裸交易的轻...

    用户1408045
  • Nginx缓存原理及机制

    上篇文章介绍了Nginx一个较为重要的知识点:Nginx实现接口限流。本篇文章将介绍Nginx另一个重要知识点:Nginx缓存原理。其实说到缓存技术大家应该...

    逆月翎

扫码关注云+社区

领取腾讯云代金券