当前位置: 首页 > news >正文

(分布式缓存)Redis持久化

对应的视频教程

高级篇Day3-01-Redis持久化_哔哩哔哩_bilibili

一、RDB持久化

 首先需要在Linux系统中安装一个Redis,如果尚未安装的同学,可以参考下面链接教程安装先:

(73条消息) 单机安装Redis_其然乐衣的博客-CSDN博客

 

修改配置文件

 

创建一个数据

因为设置了只要5秒内有一次修改就会触发一次备份数据,所以就得到了备份数据 

 

 

 RDB是有可能会发生数据丢失的,因为两次备份的时间间隔会比较长。因此我们需要AOF持久化,它可以大大地提高数据的安全性,来弥补RDB缺点

二、AOF持久化

1、修改配置文件redis.conf

1.1.先禁用RDB,因为要演示AOF

1.2.开启AOF功能(默认的是no)

 1.3.AOF文件的名称,文件后缀是.aof,文件名可任意,这里我们不做修改没用默认的就行

 1.4.

 到这配置文件的修改就完成了

2.删掉rdb文件

rm -rf *.rdb

 3.重启redis

redis-server redis.conf

4.检查数据,发现证明之前的数据都清空了

 5.写新数据

6.刷新一下,aof文件就生成了,也就是备份了数据

 7.查看aof文件

 如果继续添加命令写数据

 8.停止redis和重启redis

 停止重启后,依然有以前的数据

【 这就证明了,我们确实已经实现了数据的持久化和 故障的维护】

9.

但是存在的缺陷是,aof会记录对同一个key的多次写操作,但只有最有一次写操作才意义,然而这增大了文件的大小,比RDB的文件大很多。

通过执行 bgrewriteaof 命令,可以让AOF文件执行重写功能,用最少的命令达到相同的效果  9.1 执行bgrewriteaof 命令

 9.2. 通过cat命令查询aof文件 

9.3. 通过vi查看aof文件 

会发现命令被压缩了

虽然比之前的难看些了, 但还可以看懂一些,比如num name这些

10.如果我们不自己手动执行 bgrewriteaof 命令,Redis也会在触发阈值时自动去重写AOF文件。阈值也可以在redis.conf中配置:

# AOF文件上次文件 增长超过多少百分比则触发重写
auto-aof-rewrite-percentage 100
# AOF文件体积最小多大以上才触发重写
auto-aof-rewrite-min-size 64mb

三、RDB和AOF两种持久化的对比

 注意:

        我们在实际使用中,往往会两者结合使用(数据回复优先级AOF优先于RDB)

RDB主要充一个数据备份的作用,我们可以将备份的RDB文件拷贝到别的机房,异地的容灾。当机房这个机房毁了,AOF也就毁了,但被拷贝到别的机房的RDB文件还在,那么我们的数据还是可以恢复的。所以RDB就是主要起到这么一个备份数据的作用

相关文章:

  • 计算机组成原理第二章----数据信息的表示 详解版(写的这么接地气我一下就懂了?)
  • windows 常用命令字典
  • 【案例回顾】春节一次较波折的MySQL调优
  • IDEA2020创建JavaSE项目改造成JavaWeb项目并配置tomcat
  • 分布式任务调度Schedulerx2.0工作原理
  • ATF启动(三):BL2
  • 论Orchestration和Choreography
  • JUC线程线程池和锁面试题
  • TypeScript 简介
  • css过渡效果
  • mysql中EXPLAIN命令解析
  • 【NodeJs-5天学习】第二天篇④ ——项目模块化
  • LeetCode 110.平衡二叉树 (C++)
  • 基于SpringBoot的校园闲置物品交易管理系统
  • 在线表格 循环替换 脚本
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 30天自制操作系统-2
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • mysql innodb 索引使用指南
  • Otto开发初探——微服务依赖管理新利器
  • Python爬虫--- 1.3 BS4库的解析器
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 日剧·日综资源集合(建议收藏)
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (C语言)共用体union的用法举例
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 分布式技术比较
  • .Net 路由处理厉害了
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET/C# 的字符串暂存池
  • .NET使用HttpClient以multipart/form-data形式post上传文件及其相关参数
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作
  • ??在JSP中,java和JavaScript如何交互?
  • @Autowired标签与 @Resource标签 的区别
  • @TableLogic注解说明,以及对增删改查的影响
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce
  • [Android]使用Retrofit进行网络请求
  • [android学习笔记]学习jni编程
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数
  • [ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总