[TOC] 在开始介绍 scrapy 的去重之前,先想想我们是怎么对 requests 对去重的。 requests 只是下载器,本身并没有提供去重功能。所以我们需要自己去做。 很典型的做法是事先定义一个去重队列,判断抓取的 url 是否在其中,如 此时的集合是保存在内存中的,随着爬虫抓取内容变多, ...
分类:
其他好文 时间:
2020-04-12 18:36:57
阅读次数:
69
素数这个概念人类已经研究了上千年,但是的具体的起源却不得而知。早在公元前300年,欧几里得就在他的著作《元素》中证明了有无穷多个素数,同时也证明了任何一个整数都能够被某一个素数整除。时至今日,素数在计算机科学这样一个和数学联系紧密的学科中也有这个广泛的应用,比如布隆过滤器、伪随机数、RSA加密算法等... ...
分类:
其他好文 时间:
2020-04-11 18:35:24
阅读次数:
98
一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件: 模块介绍 hutool-aop JDK动态代理封装,提供非IOC下的切面支持 hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤 hut ...
分类:
Web程序 时间:
2020-04-07 09:18:06
阅读次数:
128
参考文章 布隆过滤器redis缓存 https://www.cnblogs.com/zhanggguoqi/p/10571225.html 布隆过滤器(bloom filter)介绍以及php和redis实现布隆过滤器实现方法 http://imhuchao.com/1271.html 借助Redi ...
分类:
其他好文 时间:
2020-04-05 18:40:53
阅读次数:
60
布隆过滤器出现的背景: 如果想判断一个元素是不是在一个集合里,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路,存储位置要么是磁盘,要么是内存。很多时候要么是以时间换空间,要么是以空间换时间。 在响应时间要求比较严格 ...
分类:
其他好文 时间:
2020-03-25 01:21:12
阅读次数:
159
不知道从什么时候开始,本来默默无闻的布隆过滤器一下子名声大燥,仿佛身在互联网,做着开发的,无人不知,无人不晓,哪怕对技术不是很关心的小伙伴也听过它的名号。我也花了不少时间去研究布隆过滤器,看了不少博客,无奈不是科班出身,又没有那么聪明的头脑,又比较懒...经过“放弃,拿起,放弃,拿起”的无限轮回,应 ...
分类:
其他好文 时间:
2020-03-22 10:58:36
阅读次数:
59
原文:7.【Redis系列】Redis的高级应用-布隆过滤器 拿今日头条来说,它会不停的给我们推荐新的新闻,每次推荐都要去重,过滤掉我们之前看过的内容,今日头条如何做到去重呢,我们上面的HyperLogLog虽然能去重,但是没有办法确认这个新闻有没有被浏览 过,没有pfcontains的方法。有没有... ...
分类:
其他好文 时间:
2020-03-18 09:16:36
阅读次数:
45
1.1 布隆过滤器 1、布隆过滤器是什么?(判断某个key一定不存在) 1. 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构 2. 特点是高效地插入和查询,可以用来告诉你 “某样东西一定不存在或者可能存在”。 3. 相比于传统的 List、Set、Map 等数据结构,它更高效、占用空间更少 ...
分类:
其他好文 时间:
2020-03-16 23:26:54
阅读次数:
58
本文始发于个人公众号: TechFlow ,原创不易,求个关注 今天继续介绍分布式系统当中常用的数据结构,今天要介绍的数据结构非常了不起,和之前介绍的布隆过滤器一样,是一个功能强大原理简单的数据结构。并且它的缺点和短板更少,应用更加广泛,比如广泛使用的Redis就有用到它。 SkipList简介 S ...
分类:
其他好文 时间:
2020-02-22 09:29:21
阅读次数:
69
import hashlib import redis class SimpleHash(object): def __init__(self, cap, seed): self.cap = cap self.seed = seed def hash(self, value): ret = 0 fo ...
分类:
编程语言 时间:
2020-02-21 11:28:21
阅读次数:
78