RDB方式 Redis是默认支持的

优势:只有一个文件,时间间隔的数据,可以归档为一个文件,方便压缩转移(就一个文件)

劣势:如果宕机,数据损失比较大,因为它是没一个时间段进行持久化操作的。也就是积攒的数据比较多,一旦懵逼,就彻底懵逼了

配置:

[root@localhost redis]# vi redis.conf

编辑redis.conf

往下拉:

这里save 900 1 表示 每900秒内至少有1个kery发生变化,就持久化

save 300 10表示 每300秒内至少有10个key发生变化,就持久化

save 60 10000表示 每60秒内至少有10000个key发生变化,就持久化

再往下拉:

这里有个dbfilename配置 是 保存的持久化的文件名 默认是dump.rdb

再往下:

dir ./ 表示文件存储路径是当前路径;

我们退出

当前路径里确实是有这个文件的。

RDB北风和恢复数据

假如遇到断电或者宕机或者自然灾害, 我们需要恢复数据 我们模拟下。

我们先重置下数据

shutdown关闭下redis

127.0.0.1:6379> shutdown

not connected> exit

[root@localhost redis]# ll

总用量 52

drwxr-xr-x. 2 root root   134 7月   6 09:18 bin

-rw-r--r--. 1 root root    99 7月  18 10:41 dump.rdb

-rw-r--r--. 1 root root 46697 7月  18 10:41 redis.conf

然后删除掉rdb文件,再启动redis

[root@localhost redis]# rm -rf dump.rdb

[root@localhost redis]# ll

总用量 48

drwxr-xr-x. 2 root root   134 7月   6 09:18 bin

-rw-r--r--. 1 root root 46697 7月  18 10:41 redis.conf

[root@localhost redis]# ./bin/redis-server ./redis.conf

[root@localhost redis]# ./bin/redis-cli

127.0.0.1:6379> keys *

(empty list or set)

这时候是没有数据的

这时候启动 是没数据的

[root@localhost redis]# ./bin/redis-server ./redis.conf

[root@localhost redis]# ./bin/redis-cli

127.0.0.1:6379> keys *

(empty list or set)

我们搞几个key,然后shutdown save 保存退出

127.0.0.1:6379> set n1 1

OK

127.0.0.1:6379> set n2 2

OK

127.0.0.1:6379> set n3 3

OK

127.0.0.1:6379> shutdown save

not connected> exit

假如这时候 我们再重启redis 这时候启动过程会进程rdb check验证 然后加载redis目录下rdb文件;加载数据;

我们验证下:

我们再次启动

[root@localhost redis]# ./bin/redis-server ./redis.conf

[root@localhost redis]# ./bin/redis-cli

127.0.0.1:6379> keys *

1) "n1"

2) "n3"

3) "n2"

说明是数据加载进来了;

这里我们把redis下的rdb文件剪切到其他地方去 然后再启动试下

[root@localhost redis]# ll

总用量 52

drwxr-xr-x. 2 root root   134 7月  18 11:05 bin

-rw-r--r--. 1 root root    99 7月  18 11:35 dump.rdb

-rw-r--r--. 1 root root 46697 7月  18 10:41 redis.conf

[root@localhost redis]# mv dump.rdb /root/

[root@localhost redis]# ll

总用量 48

drwxr-xr-x. 2 root root   134 7月  18 11:05 bin

-rw-r--r--. 1 root root 46697 7月  18 10:41 redis.conf

[root@localhost redis]# ll /root/

总用量 8

-rw-------. 1 root root 1261 7月   6 05:42 anaconda-ks.cfg

-rw-r--r--. 1 root root   99 7月  18 11:35 dump.rdb

-rw-r--r--. 1 root root    0 7月  13 22:00 java牛逼

drwxr-xr-x. 2 root root    6 7月  13 22:07 java书籍

剪切到了root下

这时候再启动下:

[root@localhost redis]# ./bin/redis-server ./redis.conf

[root@localhost redis]# ./bin/redis-cli

127.0.0.1:6379> keys *

(empty list or set)

数据没了

恢复数据的话 我们只需要把备份文件搞到redis下即可

再复制过来即可:

[root@localhost redis]# cp /root/dump.rdb /usr/local/redis/

cp:是否覆盖"/usr/local/redis/dump.rdb"? y

[root@localhost redis]# ./bin/redis-server ./redis.conf

[root@localhost redis]# ./bin/redis-cli

127.0.0.1:6379> keys *

1) "n2"

2) "n1"

3) "n3"

这时候 数据就有了 这就是恢复过程;

绕了一大圈 总结下

平时我们可以定期把rdb文件备份到指定地方 需要恢复的时候 直接把rdb搞到redis下即可;

Redis的持久化之RDB方式的更多相关文章

  1. (七)Redis之持久化之RDB方式

    一.持久化概念 所有的数据都存在内存中,从内存当中同步到硬盘上,这个过程叫做持久化过程. 使用方法: 1. rdb持久化方法:在指定的时间间隔写入硬盘 2.         aof方式:将以日志,记录 ...

  2. (八)Redis之持久化之AOF方式

    一.概念 AOF方式:将以日志,记录每一个操作 优势:安全性相对RDB方式高很多: 劣势:效率相对RDB方式低很多: 二.案例 appendonly no默认关闭aof方式 我们修改成yes 就开启 ...

  3. Redis:持久化之RDB和AOF

    Redis:持久化之RDB和AOF RDB(Redis DataBase) 在指定的时间间隔内将内存中的数据集快照写入硬盘 也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里. R ...

  4. redis的持久化之RDB的配置和原理

    Redis优秀的性能是由于其将所有的数据都存储在内存中,同样memcached也是这样做的,内存中的数据会在服务器重启后就没有了,也就是不能保证持久化.但是为什么Redis能够脱颖而出呢,很大程度上是 ...

  5. 11、Redis的持久化(RDB、AOF)

    写在前面的话:读书破万卷,编码如有神 --------------------------------------------------------------------------------- ...

  6. NoSql数据库Redis系列(3)——Redis数据持久化(RDB)

    大家都知道 Redis 是一个内存数据库,所谓内存数据库,就是将数据库中的内容保存在内存中,这与传统的MySQL,Oracle等关系型数据库直接将内容保存到硬盘中相比,内存数据库的读写效率比传统数据库 ...

  7. 详细分析Redis的持久化操作——RDB与AOF

    一.前言   由于疫情的原因,学校还没有开学,这也就让我有了很多的时间.趁着时间比较多,我终于可以开始学习那些之前一直想学的技术了.最近这几天开始学习Redis,买了本<Redis实战>, ...

  8. redis的持久化(RDB与AOF)

    1.为什么redis要实现持久化? 避免因宕机.断电等场景导致进程退出后数据丢失,如果redis的数据都只存放于内存,那么进程退出后数据就丢失了.持久化机制可以持久化内存数据到硬盘,重启redis后基 ...

  9. Redis的持久化之RDB

    1.什么是Redis的持久化 Redis是一种高级key-value数据库,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,所以Redis的所有数据都 ...

随机推荐

  1. php 两变量值互换 方法

    //方法一:$a ="abc";$b="def"; $a = $a^$b;$b = $b^$a;$a = $a^$b; //方法二:list($a, $b)= ...

  2. JVM 组成以及各部分作用

    1.Java虚拟机的体系结构 2.jvm在系统中的布局 3.jvm装载一个类 当一个classLoder启动的时候,classLoader的生存地点在jvm中的堆,然后它会去主机硬盘上将A.class ...

  3. Python学习笔记九

    Python学习笔记之九 为什么要有操作系统 管理硬件,提供接口. 管理调度进程,并且将多个进程对硬件的竞争变得有序. 操作系统发展史 第一代计算机:真空管和穿孔卡片 没有操作系统,所有的程序设计直接 ...

  4. Codeforces 1109D Sasha and Interesting Fact from Graph Theory (看题解) 组合数学

    Sasha and Interesting Fact from Graph Theory n 个 点形成 m 个有标号森林的方案数为 F(n, m) = m * n ^ {n - 1 - m} 然后就 ...

  5. git操作:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! (警告:远程主机标识已更改!)

    问题背景: 前几日,把云服务器系统由centos改成Ubuntu之后,重新搭建的git服务器环境. 问题描述: 从本机不能clone远程git仓库. 报错如下: @@@@@@@@@@@@@@@@@@@ ...

  6. Linux中Buffer和Cache的区别

    1. Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而  Cache保存着CPU刚 ...

  7. python下的并发编程

    阅读目录 一 背景知识 二 python并发编程之多进程 三 python并发编程之多线程 四 python并发编程之协程 五 python并发编程之IO模型 六 补充:paramiko模块 七 作业 ...

  8. S0.2 灰度图

    目录 灰度图定义 灰度图优点 RGB转灰度算法(OpenCV3) 量化 算法公式 OpenCV自带函数实现 综合比较 灰度图定义 对于单色(灰度)图像而言,每个像素的亮度用一个数值来表示,通常数值范围 ...

  9. [BZOJ1984][Luogu4315]月下“毛景树”

    题目大意 给出一棵 n 个点的无根树,待边权,要求维护一下操作: 修改某条边的边权 修改点 u 到点 v 路径上所有边的边权 点 u 到点 v 路径上所有边的边权加上某个值 查询点 u 到点 v 路径 ...

  10. centos7.4安装npm

    下载网址 https://nodejs.org/dist/latest-v8.x/ 安装过程参考 https://blog.csdn.net/micarlxm/article/details/8109 ...