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的数据持久化,数据备份与恢复 -> 正文阅读

[大数据]redis的数据持久化,数据备份与恢复

redis数据持久化

redis数据持久化就是,redis可以实现永久保存数据

实现数据持久化有两种方式

通过rdb文件

rdb文件,/var/lib/redis/6379/dump.rdb,储存的是redis的实际数据信息
dump.rdb文件,默认开启

查看rdb文件的存盘策略

save 时间(秒) 变量个数

[root@host145 ~]# sed -n '219,221p' /etc/redis/6379.conf
save 900 1
save 300 10
save 60 10000

通过aof文件

aof文件,存储的是redis执行写操作的命令,与MySQL的binlog日志功能相似
aof文件,默认不开启

开启aof文件有方式

  1. redis服务内执行命令立即开启,再执行config rewrite实现永久开启
  2. 修改配置文件,重启redis服务永久开启。此方法会丢失服务器原有数据
vim /etc/redis/6379.conf		
appendonly yes		 #启用 aof 文件	
appendfilename "appendonly.aof" #日志文件名	

redis数据备份

  1. 备份rdb文件,实现数据备份
  2. 备份aof文件,实现数据备份

redis数据恢复

使用rdb文件恢复数据

高性能的持久化实现 —— 创建一个子进程来执行持久化,先将数据写入临时文件,持久化过程结束后,再用这个临时文件替换上次持久化好的文件;过程中主进程不做任何IO操作比较适合大规模数据恢复,且对数据完整性要求不是非常高的场合
意外宕机时,丢失最后一次持久化的所有数据

  1. 停止redis服务
  2. 删除原有的dump.rdb文件
  3. 把备份的dump.rdb文件copy到数据库目录
  4. 开启redis服务

使用aof文件恢复数据

可以灵活设置持久化方式
出现意外宕机时,仅可能丢失1秒的数据
与aof 相关的配置项 ( vim /etc/redis/6379.conf )

appendfsync always   #时时记录,并完成磁盘同步
appendfsync everysec 	  #每秒记录一次,并完成磁盘同步
appendfsync no      #写入aof ,不执行磁盘同步
auto-aof-rewrite-min-size  64mb  #首次重写触发值 ,重写是对文件进行压缩
auto-aof-rewrite-percentage 100  #再次重写,增长百分比。
  1. 停止redis服务
  2. 删除原有的appendonly.aof文件,dump.rdb文件
  3. 把备份的appendonly.aof文件copy到数据库目录
  4. 开启redis服务

redis数据aof文件损坏修复

redis-check-aof --fix /aof文件路径

验证数据备份恢复

通过rbd文件备份恢复数据

[root@host145 ~]# redis-cli -h 192.168.44.145 -p 6379 -a 123456
#查看数据库数据
192.168.44.145:6379> keys *
1) "y"
2) "z"
3) "x"
192.168.44.145:6379> exit
#通过rdb文件备份数据
[root@host145 ~]# cp  /var/lib/redis/6379/dump.rdb /root/
[root@host145 ~]# ls
dump.rdb
[root@host145 ~]# redis-cli -h 192.168.44.145 -p 6379 -a 123456
#清空数据
192.168.44.145:6379> flushall
OK
#数据已清空
192.168.44.145:6379> keys *
(empty list or set)
192.168.44.145:6379> exit
#关闭redis服务器
[root@host145 ~]# redis-cli -h 192.168.44.145 -p 6379 -a 123456 shutdown
#redis服务器已关闭
[root@host145 ~]# redis-cli -h 192.168.44.145 -p 6379 -a 123456
Could not connect to Redis at 192.168.44.145:6379: Connection refused
Could not connect to Redis at 192.168.44.145:6379: Connection refused
not connected> exit
#删除旧的rdb文件
[root@host145 ~]# rm -rf /var/lib/redis/6379/dump.rdb
#把备份的rdb文件放入数据库目录下
[root@host145 ~]# cp dump.rdb /var/lib/redis/6379/dump.rdb
#开启redis服务
[root@host145 ~]# /etc/init.d/redis_6379 start
Starting Redis server...
[root@host145 ~]# redis-cli -h 192.168.44.145 -p 6379 -a 123456
#数据已恢复
192.168.44.145:6379> keys *
1) "z"
2) "x"
3) "y"
192.168.44.145:6379>

通过aof文件备份恢复数据

开启aof文件

#查看现有数据
192.168.44.145:6379> keys *
1) "z4"
2) "z3"
3) "z2"
4) "z1"
#开启aof文件
192.168.44.145:6379> config set appendonly yes
OK
(0.56s)
#设置永久开启
192.168.44.145:6379> config rewrite
OK
#数据依然存在
192.168.44.145:6379> keys *
1) "z4"
2) "z2"
3) "z3"
4) "z1"

通过aof文件备份恢复

#通过aof文件备份数据
[root@host145 ~]# cp /var/lib/redis/6379/appendonly.aof /root
[root@host145 ~]# ls
appendonly.aof
#清空数据
192.168.44.145:6379> flushall
#数据已清空
192.168.44.145:6379> keys *
(empty list or set)
#关闭redis服务
[root@host145 ~]# redis-cli -h 192.168.44.145 -p 6379 -a 123456 shutdown
#删除旧的rdb文件,aof文件
[root@host145 ~]# rm -rf /var/lib/redis/6379/*
#把备份的aof文件放入数据库目录下
[root@host145 ~]# cp appendonly.aof /var/lib/redis/6379/
#开启redis服务
[root@host145 ~]# /etc/init.d/redis_6379 start
[root@host145 ~]# redis-cli -h 192.168.44.145 -p 6379 -a 123456
#数据已恢复
192.168.44.145:6379> keys *
1) "z2"
2) "z4"
3) "z3"
4) "z1"
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:12:48  更:2022-08-19 19:16:58 
 
开发: 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 11:02:57-

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