没有合适的资源?快使用搜索试试~ 我知道了~
利用Redis进行数据去重
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 40 浏览量
2021-01-21
16:53:09
上传
评论
收藏 61KB PDF 举报
温馨提示
试读
2页
前言 之前有篇文章提到了实现增量爬虫可以利用redis数据库进行url去重,今天博主就给大家分享一下python如何利用redis进行去重吧。在试验中,我们用到Redis数据库和hash算法,我们先了解一下Redis和hashlib。 Redis简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 优势 读写速度极快,Redis能读的速度是110000次/s,写的速度是81000次/s 。 支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)。 Redis可以将内存中的数据利用快照
资源推荐
资源详情
资源评论
利用利用Redis进行数据去重进行数据去重
前言前言
之前有篇文章提到了实现增量爬虫可以利用redis数据库进行url去重,今天博主就给大家分享一下python如何利用redis进行去
重吧。在试验中,我们用到Redis数据库和hash算法,我们先了解一下Redis和hashlib。
Redis简介简介
Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。
Redis 优势优势
读写速度极快,Redis能读的速度是110000次/s,写的速度是81000次/s 。
支持多种数据结构:string(字符串);list(列表);hash(哈希),set(集合);zset(有序集合)。
Redis可以将内存中的数据利用快照和日志的形式保存到硬盘上,这样发生类似断电或者机器故障的时候,内存中的数据不会
丢失。
丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。
hashlib简介简介
hash是一种算法,不同的hash算法只是复杂度不一样, hashlib中提供了SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5
算法,这些算法接受传入的内容,经过运算得到一串hash值
hashlib特点特点
传入的内容一样,得到的hash值必然一样。
不能由hash值返解成内容。
只要使用的hash算法不变,无论校验的内容有多大,得到的hash值长度是固定的,可以节省内存。
以上就是对redis和hashlib的说明了,下面我们进行一些简单的试验,让大家能有更加深刻的了解。
程序分模块讲解程序分模块讲解
导入模块导入模块
import redis
import hashlib
创建创建Redis类类
连接Redis数据库需要提供主机号和端口号,不需要密码,同时需要指定连接的数据库号(redis中默认存在0-15号数据库),
这里我们使用集合存储数据
host处需要大家提供主机号。
class Redis():
def __init__(self):
self.con = redis.Redis(
host='', #ip地址
port=6379, #端口号,默认为6379
db=15,
decode_responses=True #设置为True存的数据格式就是str类型
)
def add(self,key,data):
if self.exit(key,data):
print("该数据已存在!")
else:
self.con.sadd(key,data) #添加
print("添加成功")
def query(self,key):
return self.con.smembers(key) #拿出key对应所有值
def delete(self,key):
self.con.delete(key) #删除key键
def exit(self,key,data):
return self.con.sismember(key, data) # 判断key里是否有data,有则返回true
创建创建hashlib类类
class Hashencode():
def __init__(self):
self.encode_machine = hashlib.md5() # 创建一个md5对象
def encode(self,url):
self.encode_machine.update(url.encode()) #更新
url_encode = self.encode_machine.hexdigest() #拿到编码后的十六进制数据
return url_encode
有了以上两个类的基础,我们进行试验。
weixin_38684976
- 粉丝: 4
- 资源: 950
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页