版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务4零售数据存储与分析—Redis实战课程导览01环境搭建与配置Redis源码编译安装与远程访问验证02零售数据存储Python实现MySQL数据读取并存入Redis03零售数据缓存Redis缓存拦截与数据库查询优化实战04知识链接与总结Redis核心概念、命令与数据类型详解环境搭建与配置01工单4.1基本信息与目标本工单采用源码编译方式安装Redis,并对Redis进行配置与验证4.1工单编号Redis的安装与配置工单名称1课时建议学时零售数据存储与分析—Redis实战所属任务已安装Linux系统的虚拟机环境要求学习目标知识目标掌握Redis的安装方法能力目标能够独立安装和配置Redis素养目标培养学生的创新意识和创新精神安装与升级gcc编译器提示:升级后再次执行
gcc-v,版本已满足编译要求4.8.5初始版本
未满足要求7.3.1升级后版本
↑已满足≥5.0操作步骤01安装gccyuminstallgcc02检查版本gcc-v03升级至gcc7yuminstallcentos-release-sclyuminstalldevtoolset-7-gcc*sclenabledevtoolset-7bash源码上传、解压与编译Redis源码编译安装特性说明版本灵活可自由选择安装版本低网络依赖离线环境亦可完成01上传源码并解压tar-zxvfredis-6.0.0.tar.gzmvredis-6.0.0redis02进入目录并编译cdredismake03编译成功进入安装makeinstall安装Redis并修改配置修改两项配置,开启远程访问支持步骤一:安装并指定目录makeinstallPREFIX=/usr/local/redis步骤二:复制配置文件cp/opt/redis/redis.conf/usr/local/redis/bin步骤三:修改关键配置监听接口原值:修改后:支持远程访问保护模式原值:yes修改后:no简化验证流程vi/usr/local/redis/bin/redis.conf编写启动脚本与配置环境环境准备与脚本创建01创建启动脚本start-redis.sh:切换目录并启动服务#!/bin/bashcd/usr/local/redis/binredis-serverredis.conf02配置环境变量编辑
/etc/profile
添加Redis路径exportREDIS_HOME=/usr/local/redisexportPATH=$PATH:$REDIS_HOME/bin配置生效与运行03生效配置并赋权使环境变量生效,赋予脚本执行权限source/etc/profilechmoda+x/usr/local/redis/bin/start-redis.sh04执行启动运行启动脚本启动Redis服务./start-redis.sh远程访问与验证安装验证
Redis安装与配置
是否成功安装完成Redis安装验证流程01master节点启动Redis客户端执行
source/etc/profile
与
redis-cli02提示符验证服务启动提示符变为
:6379>
说明服务启动成功03Windows客户端远程访问执行
redis-cli-h33
从物理主机远程连接04验证键值对读写Windows客户端
setnamexiaohong,master节点
getname
成功获取05键值对获取成功说明
Redis安装和配置已经完成本工单通过源码编译完成
Redis安装,为后续零售数据存储与分析提供存储支撑存储支撑零售数据存储02工单4.2基本信息与目标核心任务:通过Python实现从MySQL读取数据并存入Redis工单信息工单编号4.2工单名称Redis零售数据存储建议学时1
学时所属任务零售数据存储与分析—Redis实战环境要求已安装好Redis的虚拟机1安装Python3.7+→2安装MySQL连接库→3安装Redis连接库→4编写程序→5验证结果学习目标维度具体要求知识目标掌握Redis数据存储方法能力目标能够独立完成Redis数据存储素养目标培养学生细致严谨的工作态度Python安装与镜像源配置下载官网下载安装文件,选择Customizeinstallation定制安装可选功能勾选除"pylauncher"外所有复选框高级选项额外勾选两项关键配置镜像源切换安装完成后将pip文件夹复制到用户目录,切换国内镜像源Python3.9定制安装+pip国内镜像源配置Installforallusers为所有用户安装AddPythontoenvironmentvariables添加至环境变量pymysql与redis库安装pymysql安装与验证01安装:pipinstallpymysql02成功标志:输出Successfully字样出现Successfully说明安装成功03导入验证:importpymysql不报错不报错即导入成功redis库安装与验证01安装:pipinstallredis02导入验证:importredis不报错不报错即导入成功两个库安装完成后,即可开始编写数据迁移程序main.py程序—MySQL数据读取环境准备新建项目VSCode中创建RedisProject文件夹,新建main.py文件执行验证运行程序执行
pythonmain.py,成功显示
10
条记录Python代码实现importpymysqlimportredisdefreadMySQL():db=pymysql.connect(host='33',port=3306,user='sqoop',password='newPass@123',database='ods')cursor=db.cursor()cursor.execute('select*fromproduct_pricelimit10')mit()result=cursor.fetchall()db.close()
returnresultif__name__=='__main__':rows=readMySQL()
forrowinrows:print(row)数据存入Redis与验证读取MySQL数据调用readMySQL()获取商品信息列表同步存入Redis使用hmset命令哈希存储商品数据Redis客户端验证执行hmget命令验证数据同步准确性01读取MySQL数据调用readMySQL()函数获取商品信息列表,返回包含id/title/price的元组02同步存入Redis连接Redis服务,遍历数据行,使用hmset命令以商品id为键进行哈希存储03Redis客户端验证执行hmget命令查询指定商品id,成功返回完整数据→验证同步准确;查询不存在的id返回空→验证数据准确性工单4.2小结完成从
MySQL
读取数据并存入
Redis
的完整数据迁移核心四步骤01安装Python3.9开发环境搭建基础运行环境02安装pymysql和redis两个Python连接库03编写main.py程序实现数据读取与存储04验证数据存储结果通过Redis客户端确认hmset哈希存储使用
hmset
命令以
哈希类型
存储商品数据,支持后续快速查询编程习惯建议
完成一个功能立即测试验证,培养良好编程习惯零售数据缓存03工单4.3:Redis零售数据缓存通过查询缓存数据和直接查询MySQL数据,验证Redis的缓存功能工单信息项目内容工单编号4.3工单名称Redis零售数据缓存建议学时1
课时所属任务零售数据存储与分析—Redis实战环境要求已安装好Redis的虚拟机学习目标目标维度具体目标知识目标掌握Redis的功能作用能力目标能够熟练使用Redis缓存功能素养目标培养学生的实践动手能力Redis缓存拦截逻辑设计缓存命中流程01用户输入输入商品ID触发查询02Redis判断ID存在→直接返回缓存数据03MySQL查询ID不存在→查库并缓存结果到Redis04后续请求同一ID直接从Redis获取核心价值减少MySQL查询次数提高数据读取效率模拟缓存拦截过程Redis作为数据库访问的拦截层,避免数据库因大量访问而崩溃main2.py缓存拦截实战(上)核心逻辑:缓存优先→MySQL兜底→自动回写importpymysqlimportredisdefreadMySQL(sqlCmd):db=pymysql.connect(host='33',port=3306,user='sqoop',password='newPass@123',database='ods')cursor=db.cursor()cursor.execute(sqlCmd)mit()result=cursor.fetchall()db.close()returnresultif__name__=='__main__':#阶段一:MySQL数据预热至Redisrows=readMySQL('select*fromproduct_pricelimit10')rds=redis.Redis(host='33',port=6379)forrowinrows:id,title,price=rowproduct={'id':id,'title':title,'price':price}rds.hmset(id,product)#批量写入Redis哈希main2.py缓存拦截实战(下)阶段二:交互式缓存查询循环1
while
True:2input_id=input('请输入商品ID:')34
ifrds.exists(input_id):#缓存命中5
print('Redis缓存中已存在,直接返回:')6product=rds.hmget(input_id,['id','title','price'])7
print(product)8
else:#缓存未命中9
print('Redis中不存在,查数据库并缓存')10rows=readMySQL(11
f"select*fromproduct_pricewhereproduct_code='{input_id}'")12
if
len(rows)==0:13print('查询的ID不存在')14
continue15row=rows[0]16id,title,price=row17product={'id':id,'title':title,'price':price}18rds.hmset(input_id,product)#回写缓存,下次命中19
print(product)缓存命中→直接返回未命中→查库并回写缓存验证与工单小结数据库查询次数从
3次
减少到
1次010203本工单完成Redis缓存数据快速读取,验证Redis作为数据库访问拦截层的核心价值缓存命中访问ID18532355前10条已预加载,直接从Redis返回缓存未命中→查库回写访问ID19414484Redis无缓存→查询MySQL→结果写入Redis再次命中再次访问ID19414484缓存已建立,直接从Redis返回知识链接与总结04Redis介绍与发展历程Redis是一个开源的、高性能的、基于键值对的存储系统,支持多种键值数据类型初始阶段萨尔瓦托雷·圣菲利波开发提供基本键值对操作和持久化存储发展阶段增加哈希、列表、集合、有序集合等数据结构引入主从复制实现读写分离与负载均衡功能增强阶段引入发布/订阅模式实现实时消息通信增加事务支持(MULTI/EXEC命令批量原子执行)扩展优化阶段数据分片与复制策略实现集群模式模块化架构允许C语言编写自定义模块扩展功能Redis特性—存储结构与持久化Redis字典结构键值对灵活存储:字符串、哈希、列表等多种类型直接映射程序数据结构,无需ORM转换关系数据库多表关联查询:需JOIN操作数据结构与存储结构分离,需ORM映射RDB快照机制:快照保存为磁盘二进制文件特点:效率高,文件紧凑,适合数据备份与恢复AOF日志机制:追加写操作命令到文件特点:可靠性高,数据更安全,适合重启时重放恢复数据存储在内存中,读写性能极高,但需通过持久化机制防止数据丢失VSVSRedis特性—功能丰富与简单稳定功能丰富生命周期管理键设置生存时间,到期自动删除;限定最大内存并按规则淘汰不常用键队列与消息列表实现队列系统,支持阻塞式读取;支持发布/订阅模式模块扩展(4.0+)模块功能RediSearch全文搜索RedisGraph图数据库RedisJSONJSON数据类型rediSQL运行SQL语句简单稳定设计哲学强调简洁性与稳定性,命令风格类似SQL语言,直观且易于理解读取哈希类型键示例HGETpost:1title字符串类型命令字符串类型是Redis最基础的数据类型单值内存上限为
512MB常用命令命令功能示例SET设置键的值SETname"John"GET获取键的值GETnameINCR将键的值增加1INCRcounter列表类型命令列表类型是一个有序的字符串列表,支持在头部或尾部插入和删除元素列表类型命令命令功能示例LPUSH将一个或多个元素插入列表左侧LPUSHmylist'apple''banana''orange'LRANGE获取列表指定范围的元素LRANGEmylist02LPOP从列表左侧移除并返回第一个元素LPOPmylist哈希类型命令命令功能示例HSET设置哈希字段的值HSETuser:id123name'John'age30HGET获取哈希字段的值HGETuser:id123nameHGETALL获取哈希中所有字段和值HGETALLuser:id123哈希类型字典结构,存储字段与字段值的映射,适合存储对象属性集合类型命令命令功能示例SADD向集合添加一个或多个成员SADDmyset'apple''banana''orange'SMEMBERS获取集合中所有成员SMEMBERSmysetSREM从集合中移除一个或多个成员SREMmyset'banana'集合类型字符串的无序集合,集合中的元素不可重复有序集合类型命令命令功能示例ZADD添加成员并设置分数ZADDleaderboard1000'John'ZRANGE获取指定范围内的成员ZRANGEleaderboard0-1ZSCORE获取成员的分数ZSCOREleaderboard'John'有序集合类型在集合基础上为每个元素关联一个分数,按分数排序字符串类型命令详解字符串类型是Redis最基础的数据类型,单值内存上限为512MB赋值与取值SET/GET
基础读写SETkeyhelloGETkey#返回"hello"自增运算字符串为整数时,原子性加1(默认从
0
开始)INCR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026乳制品加工行业市场产品创新分析及投资评估规划分析研究报告
- 2026中国稀土功能材料产业园资源战略储备与价格联动研究
- 纪念馆可行性研究报告
- 覆铜板生产项目可行性研究报告
- 新建高油大豆良种繁育基地建设项目可行性研究报告
- 县对外宣-传工作总结
- 年产60台真空镀膜设备加热管生产项目可行性研究报告
- 警察心理测试常见题目及答案
- 公文筐测试题及答案
- 潍坊历史一模试题全解与答案
- 地下人行通道监理实施细则
- 新生儿复苏操作技能考核评分标准(2025 版)中文版 逐项打分 + 合格判定细则
- 山洪灾害预警识别知识
- 2025-2026学年人教版生物必修二全册综合检测练习卷(含解析)
- 2025年【熔化焊接与热切割】作业考试题库(含答案)
- 2026年完整版交管学法减分考试题库及答案
- 客户服务管理员(三级)考试复习题库(浓缩300题)
- 小升初湖北省黄石市阳新县2025年(人教版)数学考试试题 含答案
- 广东高考政治试题及答案2026
- 消防培训机构设备管理制度
- TCCEAS002-2022房屋工程总承包工程量计算规范
评论
0/150
提交评论