IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis(3)---常见重点知识1(事务、持久化机制、发布订阅) -> 正文阅读

[大数据]Redis(3)---常见重点知识1(事务、持久化机制、发布订阅)

前言

关于Redis常用命令可见:Redis基本命令
本文来自视频+自己理解归纳:https://www.bilibili.com/video/BV1S54y1R7SB?p=30

一、Redis事务

Redis事务如下,multi开启事务,然后输入多条命令,命令不会马上执行,会放入一个队列中,然后等到执行exec命令,会将队列中的全部命令一起按照输入顺序执行
在这里插入图片描述

如果大家还没配这个环境,又想实操一下,那么推荐一个超好用的在线实操Redis的环境
在这里插入图片描述

DISCARD 命令取消一个事务,它会清空事务队列中保存的所有命令
在这里插入图片描述
WATCH 命令用于监听指定的键(key),当调用 EXEC 命令执行事务时,如果一个被 WATCH 命令监视的键被修改的话,整个事务都不会执行,直接返回失败(null)。(这个命令在Try Redis中执行不出来,要在自己配好的虚拟机Linux环境测试)
在这里插入图片描述

1、multi 多条命令 exec	# 开启事务与执行事务
2、discard	# 清空队列中的命令
3、watch		# 监听指定key

二、Redis持久化机制

Redis不用担心内存中的数据丢失(断电),因为他有持久化机制,将这些数据持久化到硬盘中。有两种持久化机制:RDBAOF,主要是对redis.conf文件进行配置。

2.1 RDB快照持久化(Redis默认持久化机制)

在 redis.conf 配置文件中默认有此下配置:

vi redis.conf
输入/RDB可以搜索到下面的位置

在这里插入图片描述
RDB会根据配置的策略进行持久化,就是下面的说明,你也可以修改这个策略,如save 60 2
符合设置的要求就会触发策略,rdb文件可以起到异常宕机恢复数据的作用,不过这里最好不要自己改直接用默认的这三个save即可,人家这么设置肯定有道理的

save 900 1           #在900秒(15分钟)之后,如果有1个及以上key发生变化,Redis就会自动触发BGSAVE命令创建快照。

save 300 10          #在300秒(5分钟)之后,如果有10个及以上key发生变化,Redis就会自动触发BGSAVE命令创建快照。

save 60 10000        #在60秒(1分钟)之后,如果有10000个及以上key发生变化,Redis就会自动触发BGSAVE命令创建快照。

rdb默认保存的文件是dump.rdb
在这里插入图片描述
一般这个文件会默认直接放在bin目录下
在这里插入图片描述
除了默认的save能触发RDB策略,还有两种方式可以触发RDB,一种是通过shutdown关闭redis连接,也就是关闭了redis进程,exit只是退出并不会关闭进程,还有一种是输入flushall命令,shutdown在退出时会触发rdb生成dump.rdb文件,flushall会刷新缓存,也会生成新的dump.rdb文件
在这里插入图片描述
在这里插入图片描述
如何利用rdb文件恢复?
通过config get dir可以获取到启动目录,redis启动的时候会自动在这个目录(/usr/local/bin)中检查dump.rdb文件并恢复数据,这都是自动执行、扫描的,很方便,一般用这个RDB持久化默认配置就足够了,不用我们做什么操作,它自己生成与自动扫描dump.rdb都在bin目录下
在这里插入图片描述
我们看看dump.rdb中是什么
在这里插入图片描述
如上,它是你看不懂的编码,其实它存的是二进制文件,我们看不懂,但是计算机读得懂

总结:三种情况会触发RDB,生成RDB文件(dump.rdb),有则覆盖原有的rdb文件
1、save规则满足
2、flushall命令
3、退出(shutdown)redis

优点:适合大规模数据恢复(dump.rdb)
缺点:实时性不高,可能save 60 10000,执行到59秒宕机,导致10000条数据都没有了

Redis 创建快照之后,可以对快照进行备份,可以将快照复制到其他服务器从而创建具有相同数据的服务器副本,防止一个服务器丢掉rdb就恢复不了。

2.2 AOF(append-only file)持久化

这个持久化实时性更好,默认不开启,要开启需要手动在redis.conf中进行设置,搜索appendonly,并将其设置为yes
注意:搜索是shift + :,输入/搜索内容
在这里插入图片描述
重启redis

1、在redis中输入shutdown,然后exit,关闭redis进程,上面做过这个操作
2、redis-server rconfig/redis.conf  //写redis.conf所在位置,比如我在bin/rconfig/redis.conf,启动redis
3、redis -p 6379

在这里插入图片描述
重启后输入一些命令,比如set k1 v1 和 set k2 v2,然后exit退出
在这里插入图片描述
可以看到bin目录下面有appendonly.aof文件,我们用vi查看这个文件
在这里插入图片描述
发现存的就是我们输入的命令,它就是会实时存储(一般每秒钟同步一次到硬盘),起到一个日志效果
多久持久化一次到硬盘是可以设置的,redis.conf中默认是appendfsync everysec表示每秒同步一次,默认也是一秒一次,这样能兼顾数据和写入性能,这样最多丢失1秒钟的数据
在这里插入图片描述

appendfsync always    # 每次有数据修改发生时都会写入AOF文件,这样会严重降低Redis的速度
appendfsync everysec  # 每秒钟同步一次,显示地将多个写命令同步到硬盘
appendfsync no        # 让操作系统决定何时进行同步

优点:实时性
缺点:文件比较大,占内存,文件大导致修复速度没有rdb快,运行效率也比较慢

实际默认用RDB,RDB性能更高效,测试完AOF把它关闭,默认用RDB即可
在这里插入图片描述
如果redis重新启动却无法启动,说明AOF文件有错位,需要修复这个文件。redis提供了一个工具redis-check-aof
在这里插入图片描述

redis-check-aof --fix appendonly.aof	#输入此命令即可修复这个文件,然后就可以重新启动redis

三、Redis发布订阅

Redis发布订阅是一种消息通信模式,如微信公众号,公众号作为发送者发送消息,然后订阅的人就会收到公众号的推送消息。(B站,今日头条等等都是这种模式,发布者和订阅者)
两个命令:subscribe和publish,订阅和发布
在MobaXterm中再开一个服务并启动redis,模拟两个人,一个人作为订阅端,一个人作为发布端,如下

在这里插入图片描述

在这里插入图片描述
发布端发送信息后,订阅端就会收到相应信息,第一个message表示是信息,不是对象,第二个是订阅的对象(张三),第三个是收到发布者对应的信息

这就类似上面说的公众号或者群聊,Redis可以实现订阅发布,也可以由其他方式实现,比如netty也行,有很多种,我们这里说的是Redis
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 16:56:57  更:2021-10-01 16:58:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:06:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码