Redis入门(三)--- 可视化工具,发布订阅,事务管理,持久化RDB,AOF基本概念


Redis笔记:

  1. Redis入门-----五种基本数据类型
  2. Redis入门(二)— redis新增数据类型,jedis操作redis,springboot整合redis

[拓展]、Redis可视化工具

RedisClient

github地址:https://github.com/caoxinyu/RedisClient

image-20211213165612840
在这里插入图片描述

7、Redis发布订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。

Redis 客户端可以订阅任意数量的频道。

7.1 发布和订阅

客户端可以订阅频道

image-20211211103626201

发布者给频道发布消息时,客户端能收到

image-20211211103719291

7.2 命令行实现

实现发布/订阅首先要打开两个客户端,第一个客户端订阅频道,另一个客户端向该频道发布消息

SUBSCRIBE channel1		#(接收者)订阅channel1

publish channel1 hello  #(发布者)向频道channel1发布消息(返回值是订阅者数量)

演示:

第一个客户端订阅channel1

image-20211211104146450另一个客户端向channel1发布消息

image-20211211104151394 然后第一个客户端就接收到消息

image-20211211104155639

8、Redis事务管理

8.1 Redis事务的定义

注意:Redis事务和Mysql事务不一样

Redis事务的主要作用就是串联多个命令防止别的命令插队。

Redis事务的三个特性:

  1. 单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断;
  2. 没有隔离级别的概念:队列中的命令没有提交之前都不会实际的被执行,因为事务提交前任何指令都不会被实际执行,也就不存在”事务内的查询要看到事务里的更新,在事务外查询不能看到”这个让人万分头痛的问题;
  3. 不保证原子性:redis同一个事务中如果有一条命令执行失败,其后的命令仍然会被执行,没有回滚;

8.2 Multi、Exec、discard

  • Multi:开启组队
  • Exec:结束组队并执行
  • discard:组队过程中可以放弃组队

输入Multi命令后,接下来输入的命令会依次进入命令队列中,但是不会执行,直到输入Exec后Redis才会依次执行队列中的命令,期间可用用discard放弃组队

8.2.1 事务对错误的处理

1、组队中某个命令出现了报告错误,执行时整个的所有队列都会被取消。

image-20211213162103787

2、如果执行阶段某个命令报出了错误,则只有报错的命令不会被执行,而其他的命令都会执行,不会回滚。

image-20211213162131653

案例:

1、组队成功,提交也成功

image-20211213161928442

2、组队阶段报错,提交失败

image-20211213161944313

3、组队成功,但是提交只有部分成功

image-20211213161951161

8.3 锁机制

案例引入:有很多人有你的账户,同时去参加双十一抢购

一个请求想给金额减8000

一个请求想给金额减5000

一个请求想给金额减1000

image-20211213170147976

8.3.1 悲观锁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值