摘要: 判断值是否在set集合中的速度明显要比list快的多, 因为查找set用到了hash,时间在O(1)级别。 假设listA有100w个元素,setA=set(listA)即setA为listA转换之后的集合。 以下做个简单的对比: 第一个循环用了16min,第二个循环用了52s。 由此可见,在set 阅读全文
posted @ 2019-01-28 16:52 天意凉 阅读(9588) 评论(0) 推荐(0) 编辑
摘要: 是用redis做任务队列时,要思考: 用什么数据类型来做任务队列 怎样才能防止重复爬取 上一篇文章已经决定使用list来做任务队列,但是去重问题没有得到解决。这里可以用set来解决思考二的问题,就是防止重复爬取的问题。 以下是具体代码 算是一个生产消费把,master往队列里塞任务,parser使用 阅读全文
posted @ 2019-01-28 15:38 天意凉 阅读(1848) 评论(0) 推荐(0) 编辑
摘要: 队列本身其实是个有序的列表,而Redis是支持list的,我们可以查看Redis的官方文档 http://redis.io/commands#list ,其中我们可以对这个队列的两端分别进行操作,所以其实Redis中的list即可以当做普通的先进先出的queue,也可以作为先进后出的stack。 如 阅读全文
posted @ 2019-01-28 14:34 天意凉 阅读(14140) 评论(1) 推荐(0) 编辑