某次面试的一道面试题

最近面试遇到面试官让我现场敲代码解决一个问题,具体问题是,给定多个节点,这些节点之间有依赖关系(不考虑循环依赖,可能认为是无环图),接着以随机的顺序给定一个这些节点的列表,要求输出这些节点,具体规则时某个节点不能在其依赖的节点之前先被输出。

阅读全文

Redis中数据类型和内部编码的关系

Redis中常用的数据类型主要有:字符串、列表、哈希、集合和有序集合,这些是键的type,那么这些type的底层实现是怎样的呢,本文将简单介绍一下各种数据类型对应的底层实现数据结构。在之前的几篇Redis源码分析文章中已经介绍了相关内容,不过这里作为一个整合会集中给出这些信息。 首先要知道的是Redis之所以会对不同的数据类型使用不同的内部编码方式主要还是为了节省内存,由于Redis会在内存中存放大量数据,因此根据数据特定来量身定做内部编码是非常有必要的。本文引用的全部源码都来自于Redis(version 3.2.11)。

阅读全文

论坛爬虫设计与实现

需求概述论坛爬虫的基本需求有以下几个: 爬取指定论坛的帖子信息,并且能方便地新增其他论坛的爬取需求。 爬取到的帖子需要持久化到数据库中,在后台能够以论坛为单位查看爬取回来的帖子信息。 具有关键字过滤功能,可以对指定论坛设置若干个关键字,当爬取到的帖子匹配到关键字时,可以给指定邮箱或手机发送消息通知爬取事件。 爬虫后台可以实时监控爬取情况,并查看爬取信息。

阅读全文