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

Redis学习笔记(下):持久化RDB、AOF+主从复制(薪火相传,反客为主,一主多从,哨兵模式)+Redis集群

十一、持久化RDB和AOF

持久化:将数据存入硬盘

11.1 RDB(Redis Database)

RDB:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。

备份是如何执行的:

Fork:

在/usr/local/bin目录下输入:vim /etc/redis.conf。找到SNAPSHOTTING。

dbfilename dump.rdp的意思是进行rdb后文件的名字为dump.rdg。

stop-writes-on-bgsave-error如果为yes代表:当Redis无法写入磁盘的话,直接关掉Redis的写操作,推荐yes。

rdbcompression压缩文件。

rdbchecksum如果为yes代表:检查完整性,推荐yes。

sava 秒钟 写操作次数。默认60分钟内有1个key发生变化,即进行持久化操作。5分钟内有10个key发生变化进行持久化操作。1分钟如果1000key发生变化就进行持久化操作。

操作步骤:在redis.conf配置文件中位置的下方写入save 20 3,wq!,然后ps -ef | grep redis杀掉进程,然后重新启动redis-server /etc/redis.conf,输入ll,查看dump.rdb文件的大小,客户端工具连上redis。如果有快照失败的问题可以试试:sysctl vm.overcommit_memory=1。

bgsave:Redis会在后台异步进行快照操作,快照同时还可以响应客户端请求

优势:

劣势:

RDB的备份

 操作步骤:先连接上redis,然后flushdb,然后exit退出,在bin目录下输入ll,查看此时dump.rdb文件的大小148。sudo vim /etc/redis.conf进入到redis.conf的配置文件中,添加save 20 3。然后添加5条数据比如set a a到set f f。

然后cp dump.rdb d.rdb将dump.rdb复制一份成d.rdb。然后用命令sudo rm -f dump.rdb删除掉该文件,模拟此时数据丢失的场景。输入sudo mv d.rdb dump.rdb将d.rdb改名为dump.rdb。

11.2 AOF(Append Only File)

打开AOF:vim /etc/redis.conf,输入:/appendonly可以搜索到关键字,appendfilename写的是文件最终生成的名字:

用ps -ef | grep redis查找进程,用kill -9 进程号杀死进程,然后重新redis-server /etc/redis.conf启动,再在xshell中开启一个新的会话,cd /usr/local/bin,ll查看,会看到appendonlydir文件夹,此时redis-cli进入redis中查看发现并没有数据,说明RDB和AOF同时开启时默认读取AOF。

恢复操作:cp appendonly.aof appendonly.aof.bak先备份一份。在redis中shutdown,然后exit。然后rm -rf appendonly.aof。然后mv appendonly.aof.bak appendonly.aof。然后重启redis,再连接。

异常恢复:首先cd appendonlydir,然后vi appendonly.aof.1.incr.aof,在最后加上Hello,然后进入redis,shutdown,在bin目录下启动redis,然后进入redis,此时文件已经启动不了。在bin目录下有一个redis-check-aop文件,redis-check-aop --fix 修复文件的名称,会提示出错的地方,即可进行修复。此时再启动就没有任何问题。

AOF同步频率设置:

Rewrite压缩:

将各种命令用一条表现,只关注最后的操作,原理如下:

触发条件:

重写流程:

优势:

劣势:

综合:

如果不怕数据丢失,可以用RDB。AOF不建议单独使用,会出现BUG。

十二、主从复制

主从复制:主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。

特点:1.读写分离(Master以写为主,Slave以读为主,一主多从)。2.容灾快速恢复(如果一台从服务器挂了,能够快速切换到其它从服务器进行读取)。

如果只有一台主服务器,但这台服务器挂掉了怎么办呢?配置集群:就是每一个部分都有1台主机,多个从服务器器,多个部分整体构成集群。

2.1 搭建一主多从

先关闭aof

3个会话3个链接

2.2 复制原理和一主二仆

复制原理:当从服务器连接上主服务器后,从服务器向主服务器发送进行数据同步的消息。主服务器接收到从服务器发送过来的同步消息,把主服务器数据进行持久化

6380停止,模拟挂掉,在6379发送数据,如果把6380启动会发生:变成主服务器,

重新输入命令变成从服务器,但仍旧能接收到新增的keys,是从头开始复制。假如把主服务器挂掉,从服务器仍旧是从服务器,主服务器重启从服务器仍旧认识主服务器。

2.3 薪火相传和反客为主

2.4 哨兵模式

十三、Redis6集群

十四、Redis6应用问题解决

十五、Redis6新功能

— — — — — — — — — — — — — — — —

先输入: cd /usr/local/bin,再输入:redis-server /etc/redis.conf 启动服务器,/usr/bin/redis-cli 进入redis。

快照失败原因:首先要sudo su进入到root用户,然后ps -ef | grep redis杀掉进程,redis-server /etc/redis.conf启动服务,一定要让redis是在root用户下启动的,这样子对dump.rdb的权限才是足够的。

http://www.lryc.cn/news/181328.html

相关文章:

  • 【智能家居项目】裸机版本——设备子系统(LED Display 风扇)
  • [Linux]记录plasma-wayland下无法找到HDMI接口显示器的问题解决方案
  • 【计算机网络】高级IO之select
  • 如何设计一个高效的应用缓冲区【一个动态扩容的buffer类】
  • 图像处理初学者导引---OpenCV 方法演示项目
  • 管道-匿名管道
  • 【JavaEE基础学习打卡08】JSP之初次认识say hello!
  • 使用序列到序列深度学习方法自动睡眠阶段评分
  • 【算法】排序——选择排序和交换排序(快速排序)
  • Docker 容器监控 - Weave Scope
  • Spring Boot集成redis集群拓扑动态刷新
  • COCI2022-2023#1 Neboderi
  • 由于找不到d3dx9_43.dll无法继续执行此代码怎么解决?全面解析d3dx9_43.dll
  • Linux--网络编程-字节序
  • python实现http/https拦截
  • 农产品团购配送商城小程序的作用是什么
  • 使用van-dialog二次封装微信小程序模态框
  • 生鲜蔬果同城配送社区团购小程序商城的作用是什么
  • Unity实现设计模式——状态模式
  • 差分数组的应用技巧
  • 斯坦福数据挖掘教程·第三版》读书笔记(英文版)Chapter 10 Mining Social-Network Graphs
  • DFS:842. 排列数字
  • pytorch之nn.Conv1d详解
  • H5生成二维码
  • Three.js加载360全景图片/视频
  • 北大硕士7年嵌入式学习经验分享
  • 华为鸿蒙手表开发之动态生成二维码
  • 2023-09-28 monetdb-databae的概念和作用-分析
  • 2024级199管理类联考之数学基础(上篇)
  • RFID技术引领汽车零部件加工新时代