爬虫入门(七)——Redis

Python 网络爬虫学习路线:从入门到精通 学习 Python 网络爬虫需要一步步地积累知识和实践经验。从基本的 HTTP 请求和 HTML 解析开始,逐步深入到抓包分析、爬虫框架和分布式爬虫。通过掌握这些技能,你可以成为一名高效的网络爬虫开发者。希望这篇文章能够为你提供一个清晰的学习路线,帮助你在 Python 网络爬虫的世界中找到自己的位置。 阅读详情

1. Redis介绍

1.1 Redis是什么
  • Redis是一个高性能的,开源的,C语言开发的,键值对存储数据的nosql数据库。
  • NoSQL:not only sql,泛指非关系型数据库:Redis/MongoDB/Hbase Hadoop
  • 关系型数据库:MySQL、oracle、SqlServer
1.2 Redis特性
  • Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供List,set等数据类型
  • Redis支持数据的备份
1.3 Redis的作用

Redis的主要作用:快速存取

1.4 Redis应用场景

点赞/秒杀/直播平台的在线好友列表/商品排行榜/单点登录

1.5 如何使用Redis

官网地址:https://redis.io/

2. Redis的下载和打开

2.1 Redis下载

Redis目前的版本是6.0.5,对于windows系统来说目前只能下载3.0.5版本,然而基础用法都是不变的,这里我们也不必太苛求版本。以下是已经下载的Redis的链接分享,从百度网盘中解压即可:

链接:https://pan.baidu.com/s/1zdYURr-mhhzCO3YGvzrICA
提取码:djh0

2.2 Redis在cmd中如何打开

首先win+R打开运行窗口,在cmd界面cd进入电脑中存放下载好的redis的路径,然后输入 redis-server.exe,显示这个界面则代表成功打开:
在这里插入图片描述

2.3 Redis的连接

另外打开一个cmd界面,依然cd进入redis的存放路径,然后输入redis-cli.exe,出现如下界面则表示成功连接:
在这里插入图片描述
在这个界面下就可以输入Redis命令了!

2.4 Redis数据库简单使用

DBSIZE 查看当前数据库的key数量
keys * 查看key的内容
FLUSHDB 清空当前数据库的key的数量
FLUSHALL 清空所有库的key(慎用)
exists key 判断key是否存在

3. Redis常用五大数据类型

3.1 redis-string

string是redis最基本的类型,一个key对应一个value
在这里插入图片描述
string可以包含任何数据,最大不能超过512M

1. set/get/del/append/strlen

set ---- 设置值
get ---- 获取值
mset ---- 设置多个值
mget ---- 获取多个值
append ---- 添加字段
del ---- 删除
strlen ---- 返回字符串长度

2. incr/decr/incrby/decrby

incr ---- 增加
decr ---- 减少
incrby ----- 制定增加多少
decrby ----- 制定减少多少

3. getrange/setrange

getrange ---- 获取指定区间范围内的值,类似between…and的关系
setrange ---- 代表从第几位开始替换,下脚本从零开始
从0 -1表示全部

3.2 redis-list(单值多value)

List(列表)
列表是简单的字符串列表,按照插入顺序排序,可以添加一个元素列表的头部(左边)或者尾部(右边)
它的底层实际是个链表
在这里插入图片描述

1. lpush/rpush/lrange

lpush/rpush/lrange ---- 从左/从右/获取指定长度
lpush list01 1 2 3 4 5 倒序排列
rpush list02 1 2 3 4 5 正序排列
lrange list01 0 -1 获取list01 中的所有值

2. lpop/rpop

lpop/rpop ---- 移除最左/最右
lpop list01 删除元素5
rpop list01 删除元素1

3. lindex,按照索引下标获得元素(从上到下)

lrange list01 0 -1
lindex list01 1

4. llen,求列表长度

llen list01

5. lrem key

删N个value
lrem list01 2 1 在list01中删除2个1

6.ltrim key

ltrim ---- 开始index结束index,截取指定范围的值后在赋值给key
ltrim list01 0 2 截取list01 从0到2的数据在赋值给list01

7. rpoplpush list1 list2 将list1中最后一个压入list2中第一位

lrange list01 0 -1
lrange list02 0 -1
rpoplpush list1 list2

8. lset key index value

lset list01 0 x 将list02中第一位换成x

9. linsert key before/after

linsert list01b before x php 在x之前加字段php

3.3 redis-Hash

hash是一个键值对集合
hash是一个string类型的field和value的映射表,hash特别适合存储对象
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200710161755223.png
在这里插入图片描述

1. hset/hget/hmset/hmget/hgetall/hdel

设值/取值/设值多个值/取多个值/取全部值/删除值
hset user id 11
hget user id
hmset customer id 11 name juran age 26
hmget customer id name age 只返回相应的值
hgetall customer 返回全部
hdel user id 删除id

2. hlen

求哈希长度
hlen customer

3. hexists key

hexists ---- 在key里面的某个值
存在返回1 ,不存在返回0

4. hkeys/hvals

hkeys students
hvals students

3.4 redis-set(不重复的)

Set(集合)
set是string类型的无序集合在这里插入图片描述

1. sadd/smembers/sismember

sadd/smembers/sismember ---- 添加/查看集合/查看是否存在
sadd set01 1 2 2 3 3 去掉重复添加
smembers set01 得到set01
sismember set01 1 如果存在返回1 不存在返回0

2.scard

scard ---- 获取集合里面的元素个数
scard set01

3.srem key value

srem ---- 删除集合中元素
srem set01 3
SMEMBERS set01 3已经被删除掉

4. srandmember key

srandmembe ---- 随机出几个数
sadd set02 1 2 3 4 5 6 7 8
srandmember set02 2

5. spop key

spop ---- 随机出栈
spop set01

6. smove key1 key2

sadd set03 x y z
smove set01 set03 2 将set01中的2 移动到set03中

7. 数学集合类

sadd set01 1 2 3 4 5
sadd set02 1 2 3 a b
差集
SDIFF set01 set02 返回 4 5 在第一个set中不在第二个set中
交集
SINTER set01 set02 返回 1 2 3
并集
SUNION set01 set02 返回set01 set02 中的值 去掉重复

3.5 redis-Zset

Zset(有序集合)
在这里插入图片描述

1. zadd/zrange

zadd zset01 60 v1 70 v2 80 v3 90 v4 100 v5
zrange zset01 0 -1
带分数返回 withscores

2. zrangebyscore key start end

zrangebyscore key start end----根据开始结束来取值
zrangebyscore zset01 60 70
zrangebyscore zset01 60 (90 表示不包含90
zrangebyscore zset01 60 90 limit 1 2 从第一条开始截取2条

3. zrem key

zrem key value---- 某score下对应的value值,作用是删除元素
zrem zset01 v1

4. zcard/zcount key score区间 /zrank key values

zcard 求zset01 总条数
zcount zset01 60 90 求60-90个数
zrank zset01 v2 返回1 返回对应下角标,从0开始

4. 更多命令

更多Redis命令:http://doc.redisfans.com/

5. Redis与python交互

5.1 redis的安装

在编译器或cmd中输入 pip install redis

5.2 redis在py文件中的简单示例

注意:在编译器中运行同时也需要在cmd中打开Redis(操作步骤见2.2),否则会报错

import redis

class StringRedis(object):
    def __init__(self):
        self.r=redis.StrictRedis(host='127.0.0.1',port=6379,decode_responses=True)  
        # host和port分别表示连接地址和端口号,这里设置同上即可。默认decode_responses=False是字节型字符,这里改为True表示输出为字符串类型 
        # self.r=redis.Redis()   
    # 设置值    
    def string_set(self,k,v):
        res=self.r.set(k,v)
        print(res)
    
    #获取值
    def string_get(self,k):
        res=self.r.get(k)
        return res
        
if __name__=='__main__':
    s=StringRedis()
    s.string_set('name','python')
    print(s.string_get('name'))
    print(type(s.string_get('name')))
    #输出结果:
    # True 出现True则代表成功连接
    # python
    # <class 'str'>
爬虫(25)redis简介与操作 文章目录第二十二章 Scrapy进阶redis的使用1. 数据库的简介2. Redis的使用3. Redis的配置文件4. string类型的命令5. list类型的命令 第二十二章 Scrapy进阶redis的使用 1. 数据库的简介 背景:随着互联网+大数据时代的来临,传统的关系型数据库已经不能满足中大型网站日益增长的访问量和数据量。这个时候就需要一种能够快速存取数据的组件来缓解数据库服务I/O的压力,来解决系统性能上的瓶颈。 Redis是什么? Redis是一个高性能的,开源的,C语言开发的,键值对存 阅读详情

相关推荐

【愚公系列】《Python网络爬虫从入门到精通》049-了解Scrapy爬虫框架

大家好,欢迎来到《Python网络爬虫从入门到精通》系列教程的第48篇文章。经过前面几十篇的学习,我们已经掌握了使用 requests、BeautifulSoup、Selenium 等工具进行数据抓取的基本方法。然而,随着项目的复杂度提升,这些工具在面对大型、高并发、高可维护性的爬虫任务时,往往力不从心。这时候,专业的爬虫框架——Scrapy,就该登场了。Scrapy 是一个由 Python 编写的、功能强大的异步爬虫框架,它具备高性能、模块化、易扩展等诸多优点,被广泛应用于各种数据采集任务中。

愚公智库 10万+

python | 爬虫中redis的应用,即scrapy-redis的应用

1. 关于scrapy-redis scrapy-redis是一个基于redis的scrapy组件,通过它可以快速实现简单分布式爬虫程序 原因: redis在内存中运行,它可以将抓取的网页内容存入到内存中,因此相对于从磁盘获取数据,redis可以大大提高爬虫爬取效率 scrapy-redis组件提供的三大功能: scheduler - 调度器 dupefilter - URL去重规则 ...

Candance_star的博客 561

python网络爬虫从入门到精通吕云翔pdf_Python 网络爬虫从入门到精通

第1章 Python与网络爬虫11.1 Python语言11.1.1 什么是Python11.1.2 Python的应用现状21.2 Python的安装与开发环境配置31.2.1 在Windows上安装31.2.2 在Ubuntu和Mac OS上安装41.2.3 PyCharm的使用51.2.4 Jupyter Notebook91.3 Python基本语法121.3.1 H...

weixin_39591916的博客 2641

10.爬虫与数据库—Redis数据库(含爬虫实战)

一、Redis环境搭建 二、Redis交互环境的使用 三、Redis-py的使用 四、使用Redis存储管理爬虫数据

qq_40407729的博客 1081

使用Redis实现分布式任务调度与爬虫:提升抓取效率的完整指南

通过本篇博客,我们详细介绍了如何利用Redis实现分布式任务调度,结合多线程或多进程技术实现高效的爬虫任务执行。通过详细的代码示例,我们将展示如何在多个节点之间分配任务、管理队列、处理任务结果,并处理常见的反爬虫策略。在分布式爬虫中,Redis可以用作任务队列,工作节点从队列中获取任务并执行,执行结果可以通过Redis进行返回和汇总。分布式爬虫是一项强大的技术,它能帮助我们在更大的范围内收集数据,并且可以通过多台机器或进程并行处理,极大提高抓取速度和数据处理能力。在Python中,我们可以使用。

2201_76125261的博客 613

Cadence Virtuoso VIVA波形分析:从背景色修改到线宽调整的完整指南

本文详细介绍了Cadence Virtuoso VIVA波形分析工具的核心使用技巧,包括背景色修改、线宽调整等高级功能。通过具体操作步骤和配置方法,帮助工程师优化波形显示效果,提升工作效率。特别强调了与Calculator组件的配合使用,以及专业波形图的输出技巧。

weixin_27330481的博客 621

【Scrapy-Redis】分布式爬虫实战(非常详细)

豆瓣读书分布式爬虫: 采用scrapy-Redis实现豆瓣阅读分布式爬虫。

buke 2724

动态规划与状态压缩:从TSP问题理解算法优化核心思想

动态规划是一种通过将复杂问题分解为重叠子问题并存储中间结果来避免重复计算的核心算法思想,广泛应用于路径优化、资源分配和序列决策等场景。其核心原理在于最优子结构和无后效性,通过状态设计和状态转移方程,将指数级复杂度问题转化为多项式时间可解。在工程实践中,状态压缩技术常被用于高效表示集合状态,例如使用二进制位运算来操作城市访问集合,从而大幅提升算法效率。本文以经典的旅行商问题(TSP)为例,深入剖析如何运用动态规划与状态压缩技术,将暴力穷举的指数级复杂度优化为可管理的计算量,为解决组合优化问题提供了重要的方法论

weixin_32075843的博客 365

从入门到精通:网络爬虫开发实战总结

学习是一种持续不断的过程,无论在什么领域,都需要不断地努力和探索。在这段爬虫学习历程中,我不仅获得了丰富的知识和技能,也结交了很多志同道合的朋友和粉丝,他们对我的学习和进步都提供了极大的支持和鼓励,支持我继续写下去。 总的来说,这段时间的学习和写作让我认识到了自己的不足和缺陷,也让我更加坚定了继续学习和进步的决心。我相信,在未来的学习和工作中,这段经历将成为我前行的动力和支撑。在这里,我将过去写过的爬虫文章总结一下,不仅是在爬虫学习这里留下一个里程碑,也是为了能够总结一下阶段性学习成果。

weixin_50804299的博客 6560

[代码开源]基于DistFlow的IEEE33和IEEE69节点最优潮流模型(OPF)实现与性能分析

本文详细介绍了基于DistFlow的IEEE33和IEEE69节点最优潮流模型(OPF)的实现与性能分析。通过代码开源,展示了如何从零搭建电力系统优化模型,解决配电网中的发电成本最小化问题。文章涵盖数据准备、模型实现细节、性能优化建议及常见问题解答,为电力系统研究者提供实用参考。

weixin_29103191的博客 708

ESP32-CAM入门教程

ArduinoESP32-CAM下载模块(接上USB就能用,很方便,如果没有买就只有资金用USB-TTL了)如下图两个合在一起如下图。

qq_48778364的博客 3万+

20.网络爬虫—Scrapy-Redis分布式爬虫

下载地址:🧾 🧾Redis 支持 32 位和 64 位。这个需要根据你系统平台的实际情况选择,这里我们下载 Redis-x64-xxx.zip压缩包到 D 盘,解压后,将文件夹重新命名为 redis。 打开一个 cmd 窗口 使用 cd 命令切换目录到 C:\redis 运行:🧾 🧾如果想方便的话,可以把 redis 的路径加到系统的环境变量里,这样就省得再输路径了,后面的那个 redis.windows.conf 可以省略,如果省略,会启用默认的。输入之后,会显示如下界面: 分布式:一个业务

weixin_50804299的博客 8321

ArcMap新手必看:Shape属性中的点ZM值到底是什么?如何快速处理

本文深入解析ArcMap中Shape属性中的点ZM值,揭示其在GIS数据中的隐藏维度作用,包括Z值(高程值)和M值(测量值)。针对ZM值可能引发的服务发布问题,提供三种高效处理方案,帮助新手快速掌握数据导入时的ZM值管控策略及精准去除方法。

weixin_42561476的博客 431

浅谈 Python 网络爬虫的那些事

在大数据、人工智能应用越来越普遍的今天,Python 可以说是当下世界上热门、应用广泛的编程语言之一,在人工智能、爬虫、数据分析、游戏、自动化运维等各个方面,无处不见其身影。随着大数据时代的来临,数据的收集与统计占据了重要地位,而数据的收集工作在很大程度上需要通过网络爬虫来爬取,所以网络爬虫技术变得十分重要。

黛琳ghz的博客,期待你的关注。 6826

ChatGPT充值,银行卡被拒绝,图文教程

ChatGPT充值,银行卡被拒绝

weixin_46713695的博客 2万+

RK3568平台(网络篇)WIFI模块RTL8821CU调试

RTL8821CU是瑞昱半导体推出的usb接口的wifi,下面的教程将介绍如何将RTL8821CU移植到rk3588的平台上。移植usb wifi需要修改的文件Android hal层需要修改的文件//kernel需要修改的文件kernel/arch/arm64/boot/dts/rockchip/rk3399-tve1030g.dtsi //除去板上的sdio的wifi。

weixin_49303682的博客 3905

【粉丝福利社】Python网络爬虫从入门到精通

在大数据、人工智能应用越来越普遍的今天,Python可以说是当下世界上最热门、应用最广泛的编程语言之一,在人工智能、爬虫、数据分析、游戏、自动化运维等各个方面,无处不见其身影。随着大数据时代的来临,数据的收集与统计占据了重要地位,而数据的收集工作在很大程度上需要通过网络爬虫来爬取,所以网络爬虫技术变得十分重要。本书提供了Python网络爬虫开发从入门到编程高手所必需的各类知识,共分4篇。第1篇:基础知识。

愚公智库 14万+

RK3568实现蓝牙音箱功能

A2DP旨在通过蓝牙连接传输高质量的立体声音频流。它使用的基本压缩算法是SBC(Sub-Band Coding)来减小音频数据的大小,同时保持高音质,SBC压缩虽然效率较低,但是是必须支持的基本备用方案。A2DP还支持其他高级编解码器,例如AAC、aptX和LDAC,这些编解码器比SBC提供更好的音质,但这些编解码器的支持取决于设备本身的支持情况。注意A2DP协议要与AVRCP协议区分开。A2DP是传输音频的,而AVRCP是用来控制音频的。这里我用到的是RK3568 Android11。

leikko的博客 1175

网络爬虫总结与未来方向

本章深入探讨了网络爬虫的核心能力与未来方向,并结合最新技术趋势丰富了内容。开发者可通过智能化、分布式和深度学习技术实现更高效、更智能的爬虫系统,同时需严格遵守道德规范与法律合规,打造真正具有实际应用价值的爬虫工具。通过深入学习和实际操作,网络爬虫技术从基础到进阶得以系统掌握。本节将全面总结关键内容,并结合前沿技术趋势与最新资料,为开发者提供实用性强的深度思考和方案建议。随着互联网信息规模指数增长,高性能分布式爬虫成为趋势。深度学习技术提供了爬虫项目全新的突破点。未来,语义化数据爬取将成为趋势。

好看资源网的博客 2691

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Python开发从入门到精通:网络爬虫高级应用与Scrapy框架

本文介绍了Python网络爬虫的高级应用与Scrapy框架的核心内容。首先概述了网络爬虫的基本概念和工作流程,然后重点讲解了Scrapy框架的安装、项目创建和爬虫编写方法。针对动态网页爬取,介绍了Selenium的使用及其与Scrapy的结合。在反爬虫策略方面,详细说明了代理IP、User-Agent旋转和Cookies池等技术的实现。最后,通过Scrapy-Redis实现了分布式爬虫,并以豆瓣电影Top250为案例进行了实战演示。文章涵盖了网络爬虫开发的核心技术要点,包括框架使用、反反爬措施和分布式处理等

编程世界如山海,探索不止。 2万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Python 网络爬虫:从入门到实践

Python 网络爬虫因其灵活性和高效性,已经成为数据采集领域的主力工具。从简单的 HTML 提取到动态页面抓取,从单机爬虫到分布式爬虫,Python 提供了丰富的工具和框架来满足各种需求。然而,在使用爬虫时,需注意合法合规,并对抓取的数据进行合理利用。通过不断学习和实践,你可以轻松掌握网络爬虫技术,为数据分析、机器学习等领域提供有力支持。网络爬虫是一种自动化的程序,用于从互联网上抓取数据。Python 以其强大的库和简单的语法,是开发网络爬虫的绝佳选择。使用 Scrapy 和。

qq_20245171的博客 2149

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【Python网络爬虫】一篇带你Python网络爬虫入门

爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序。从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。

左手の明天的博客 1691

python网络爬虫入门

使用http库向目标站点发起请求,即发送一个Request.Request包含:请求头、请求体等。Request模块缺陷:不能执行JS 和CSS 代码。如果requests的内容存在于目标服务器上,那么服务器会返回请求内容。Response包含:html、Json字符串、图片、视频等。对用户而言,就是寻找自己需要的信息。对于Python爬虫而言,就是利用正则表达式或者其他库提取目标信息。解析html数据:正则表达式(RE模块),第三方解析库如Beautifulsoup,pyquery等;

2402_83134109的博客 1870

python爬虫从入门到精通

本文从入门到精通的角度,介绍了Python爬虫的基本原理及过程,以及如何应对特殊网站的反爬措施,搭建工程化的爬虫框架,实现大规模并发采集等内容。希望本文能够帮助读者更好地理解Python爬虫技术,并在实践中取得更好的效果。

weixin_74021557的博客 8899

【python爬虫 系列】1.理解网络爬虫

第一节:理解网络爬虫 1.1网络爬虫的定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。 当今最大的网络是互联网,最大的爬虫就是各类搜索引擎,包括谷歌丶百度等。网络爬虫就是按照一定规则去爬去人类所...

AI_LINNGLONG的博客 2145

python网络爬虫从入门到精通吕云翔_python爬虫

新品Python高性能编程+流畅的Python 从入门到实战数据分析零基础自学教程书计算机基础小甲鱼机器语言程序设计学习网络爬虫实践书籍,已有(21608)人关注thon高性能编程+流畅的Python 从入门到实战数据,(5)人点赞on高性能编程+流畅的Python 从入门到实战数据分析¥140新品Python从入门到精通+零基础入门学习Python 全2册 零基础学习网络爬虫 python基础教...

weixin_39575054的博客 1208
上一篇: 简易海龟绘图
下一篇: 20行代码爬取王者荣耀全皮肤
北木x
博客等级 码龄7年 6粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值