数据项目基础教程 11_第1页
数据项目基础教程 11_第2页
数据项目基础教程 11_第3页
数据项目基础教程 11_第4页
数据项目基础教程 11_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目11

Redis高级进阶实战大连理工大学出版社数据库技术项目化教程(基于NoSQL)导学本章聚焦Redis核心特性的深度应用,涵盖事务、发布/订阅两大模块,帮助读者掌握Redis在高并发、数据安全、实时通信等场景下的高级技术实现,提升系统可靠性与性能优化能力。知识目标知识目标1.理解Redis事务机制3.理解发布/订阅基本流程2.理解管道机制能力目标能力目标12431.会创建Redis事务。2.会创建管道。3.会在Java中应用管道机制。4.会使用发布/订阅方式实现数据通信。素质目标素质目标2.强化实践思维能力;贰1.培养主动探索精神;壹3.提升独立攻坚能力。叁任务11.1操作Redis事务【任务描述】在电商秒杀活动中,需保证多个用户同时抢购同一商品时,库存扣减成功,同时记录订单信息。这时,需要使用Redis事务模块检查库存是否充足,扣减库存,生成订单等一系列操作必须全部成功或全部失败。本任务介绍Redis事务工作流程、学会创建Redis事务、终止Redis事务,并使用Redis事务解决具体问题。11.1.1事务介绍11.1.1事务介绍Redis事务是一组命令的集合,它允许多个命令放入一个队列,并按顺序执行,可以确保事务中的命令在执行期间不会被其他客户端的命令打断,但Redis事务不具备传统数据库事务的原子性和回滚机制。当队列中全部命令无错误的情况下,Redis事务中的命令按顺序执行,要么全部执行成功,要么全部不执行。当队列中有某条命令出错时,已执行的命令不会回滚,后续的命令也会正常执行。由此可见,Redis事务本质是命令队列的批量执行,仅提供部分原子性的保障,无回滚机制,适用于轻量级场景。11.1.2Redis事务命令Redis事务的主要命令有5个:分别是MULTI、EXEC、DISCARD、WATCH、UNWATCH。1.MULTI开启事务模式,Redis将后续所有命令进入队列中,返回QUEUED状态。11.1.2Redis事务命令2.EXEC执行事务队列中的所有命令,按入队顺序原子性执行,返回所有命令的结果。11.1.2Redis事务命令3.DISCARD取消事务,清空命令队列并退出事务模式。开启事务,输入命令进入事务队列,然后使用“DISCARD”命令取消事务,执行结果是“OK”,表示事务全部取消,也就是清空事务队列,同样,可以用GET命令再次测试两个字符串的值,对应的INCR和SET命令均未执行。11.1.2Redis事务命令4.WATCH监视一个或多个指定Key,若其在

EXEC

执行前被其他客户端修改,则事务中止取消事务。WATCH命令实现监视某个键,观察监控的结果。(1)启动两个Redis客户端终端。(2)在客户端1中监控goodsCount键。11.1.2Redis事务命令4.WATCH(3)在客户端2中修改goodsCount键。(4)回到客户端1中,接着开启事务,执行事务,观察结果。11.1.2Redis事务命令4.WATCH监视一个或多个指定Key,若其在

EXEC

执行前被其他客户端修改,则事务中止取消事务。WATCH命令实现监视某个键,观察监控的结果。(1)启动两个Redis客户端终端。(2)在客户端1中监控goodsCount键。11.1.2Redis事务命令5.UNWATCH取消WATCH对所有Key的监视。接下来的例子,展示如何在客户端1中使用WATCH+UNWATCH,并在客户端2中修改键,观察事务的执行结果。(1)启动两个Redis客户端终端。(2)在客户端1中创建goodsCount键并监控。11.1.2Redis事务命令5.UNWATCH(3)在客户端2中修改goodsCount键。(4)回到客户端1中,手动取消监视,接着开启事务,执行事务,观察结果。任务11.2实现发布订阅功能【任务描述】发布/订阅(Pub/Sub)是一种高效的消息通信模式,广泛应用于实时数据处理、事件驱动架构和分布式系统中。本任务将详细介绍如何配置和管理发布/订阅系统,包括频道管理、消息分发策略等核心功能。11.2.1管道机制11.2.1管道机制Redis的管道机制是一种在Redis中提高命令批量执行效率的机制。它允许客户端将多个命令一次性发送到服务器,从而减少了网络通信的开销,提高了命令执行的效率。Redis管道的实现原理是在客户端将多个命令打包成一个请求发送到服务器,服务器端顺序执行这些命令,并将结果按照命令顺序打包成一个响应返回给客户端。11.2.1管道机制在Java的Jedis客户端中,使用管道机制Pipeline实现批量发送请求,代码如下。publicclassMain{

publicstaticvoidmain(String[]args){

//1.创建

Redis连接

try(Jedisjedis=newJedis("localhost",6379)){

//2.开启

Pipeline

Pipelinepipeline=jedis.pipelined();

//3.批量添加命令到

Pipeline

pipeline.set("name","Lucas");

pipeline.set("age","20");

pipeline.get("name");

pipeline.get("age");

//4.执行

Pipeline中的所有命令并获取结果

List<Object>results=pipeline.syncAndReturnAll();

//5.打印结果

System.out.println(results);

}

}}11.2.2发布/订阅机制11.2.2发布/订阅机制Redis支持发布/订阅(Pub/Sub)机制,它是一种消息通信模式,允许客户端订阅频道(channel),也可以接收到通过该频道发布的消息。典型的应用场景有聊天消息推送、新闻推送、订单状态更新等。Redis发布/订阅机制包含三个角色。(1)发布者(Publisher):发送消息到特定频道的客户端。(2)订阅者(Subscriber):接收来自订阅频道消息的客户端。(3)频道(Channel):消息传递的逻辑通道,支持精确匹配和通配符模式。11.2.2发布/订阅机制Redis支持发布/订阅(Pub/Sub)机制,它是一种消息通信模式,允许客户端订阅频道(channel),也可以接收到通过该频道发布的消息。典型的应用场景有聊天消息推送、新闻推送、订单状态更新等。Redis发布/订阅机制包含三个角色。(1)发布者(Publisher):发送消息到特定频道的客户端。(2)订阅者(Subscriber):接收来自订阅频道消息的客户端。(3)频道(Channel):消息传递的逻辑通道,支持精确匹配和通配符模式。11.2.2发布/订阅机制发布/订阅功能由以下核心命令完成。命令功能说明SUBSCRIBEchannel[channel...]订阅一个或多个频道PSUBSCRIBEpattern[pattern...]按模式订阅(支持通配符)PUBLISHchannelmessage向频道发布消息UNSUBSCRIBE[channel[channel...]]取消订阅PUNSUBSCRIBE[pattern[pattern...]]取消模式订阅实训任务【实训目的】【实训目的】掌握事务机制的核心原理与操作实践01熟悉管道(Pipeline)技术的高效通信原理02熟悉发布/订阅模式的实时消息系统设计03【实训内容】【实训内容】1.Redis

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论