第一节:Redis 持久化介绍

redis所有的数据都存在内存中,所以速度非常快,但是一旦断电等情况,数据就没了。从内存当中同步到硬盘上,这个过程叫做持久化过程。
持久化操作,两种方式:rdb方式、aof方式,可以单独使用或者结合使用。
 
使用方法:
 rdb持久化方法:在指定的时间间隔写入硬盘
aof方式:将以日志,记录每一个操作,服务器启动后就构建数据库。
 
配置可以禁用 持久化功能。

也可以同时使用两种方式。
 

第二节:Redis 的持久化之RDB 方式

RDB方式 Redis是默认支持的
优势:只有一个文件,时间间隔的数据,可以归档为一个文件,方便压缩转移(就一个文件)
劣势:如果宕机,数据损失比较大,因为它是没一个时间段进行持久化操作的。也就是积攒的数据比较多,一旦懵逼,就彻底懵逼了
 
1)查看redis.conf配置:
#   like in the following example:
#
# save "" save 900 1
save 300 10
save 60 10000
这里save 900 1 表示 每900秒内至少有1个kery发生变化,就持久化
save 300 10表示 每300秒内至少有10个key发生变化,就持久化
save 60 10000表示 每60秒内至少有10000个key发生变化,就持久化
 
# The filename where to dump the DB
dbfilename dump.rdb

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

# Note that you must specify a directory here, not a file name.
dir ./

dump.rdb文件的存储位置,dir ./ 表示文件存储路径是当前路径;

2)RDB备份和恢复数据
假如遇到断电或者宕机或者自然灾害, 我们需要恢复数据 我们模拟下:
a.先将数据全部置为空,启动是没有数据的:
[root@bogon redis]# ll
总用量 52
drwxr-xr-x. 2 root root 134 3月 31 20:51 bin
-rw-r--r--. 1 root root 117 4月 1 11:15 dump.rdb
-rw-r--r--. 1 root root 46689 4月 1 11:16 redis.conf
[root@bogon redis]# rm -rf dump.rdb
[root@bogon redis]# ll
总用量 48
drwxr-xr-x. 2 root root 134 3月 31 20:51 bin
-rw-r--r--. 1 root root 46689 4月 1 11:16 redis.conf
[root@bogon redis]# bin/redis-server redis.conf
[root@bogon redis]# bin/redis-cli
127.0.0.1:6379> keys *
(empty list or set)
b.弄点数据,在重启redis,这时候启动过程会进程rdb check验证 然后加载redis目录下rdb文件;加载数据:
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> set test1 aa
OK
127.0.0.1:6379> set test2 bb
OK
127.0.0.1:6379> shutdown save
not connected> exit
[root@bogon redis]# ll
总用量 52
drwxr-xr-x. 2 root root 134 3月 31 20:51 bin
-rw-r--r--. 1 root root 102 4月 1 11:24 dump.rdb
-rw-r--r--. 1 root root 46689 4月 1 11:16 redis.conf
[root@bogon redis]# bin/redis-server redis.conf
[root@bogon redis]# bin/redis-cli
127.0.0.1:6379> keys *
1) "test1"
2) "test2"

说明是数据加载进来了;

c.把dump.rdb剪切到/root/下面,再重启redis,发现数据没了:

[root@bogon redis]# ll
总用量 52
drwxr-xr-x. 2 root root 134 3月 31 20:51 bin
-rw-r--r--. 1 root root 102 4月 1 11:29 dump.rdb
-rw-r--r--. 1 root root 46689 4月 1 11:16 redis.conf
[root@bogon redis]# mv dump.rdb /root/
[root@bogon redis]# cd /root/
[root@bogon ~]# ll
总用量 1528
-rw-------. 1 root root 1269 3月 31 23:56 anaconda-ks.cfg
-rw-r--r--. 1 root root 102 4月 1 11:29 dump.rdb
drwxrwxr-x. 6 root root 4096 7月 28 2017 redis-3.2.10
-rw-r--r--. 1 root root 1550261 7月 29 2017 redis-3.2.10.tar.gz
[root@bogon ~]# cd /usr/local/redis/
[root@bogon redis]# bin/redis-server redis.conf
[root@bogon redis]# bin/redis-cli
127.0.0.1:6379> keys *
(empty list or set)

d.恢复数据的话 我们只需要把备份文件搞到redis下即可,再把/root/dump.rdb拷贝到redis目录下,在启动,发现原来的数据恢复了:

[root@bogon redis]# ll
总用量 48
drwxr-xr-x. 2 root root 134 3月 31 20:51 bin
-rw-r--r--. 1 root root 46689 4月 1 11:16 redis.conf
[root@bogon redis]# mv /root/dump.rdb /usr/local/redis/
[root@bogon redis]# ll
总用量 52
drwxr-xr-x. 2 root root 134 3月 31 20:51 bin
-rw-r--r--. 1 root root 102 4月 1 11:29 dump.rdb
-rw-r--r--. 1 root root 46689 4月 1 11:16 redis.conf
[root@bogon redis]# bin/redis-sever redis.conf
-bash: bin/redis-sever: 没有那个文件或目录
[root@bogon redis]# bin/redis-server redis.conf
[root@bogon redis]# bin/redis-cli
127.0.0.1:6379> keys *
1) "test2"
2) "test1"

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

总结下

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

峰Redis学习(7)Redis 持久化RDB方式的更多相关文章

  1. redis学习系列——redis持久化

    1.写操作的流程 2.RDB快照-redis的第一个持久化策略 第一种是以快照的形式持久化到本地磁盘(RDB文件). 持久化策略是: 1.配置(save N M)在N秒内,redis至少发生M次修改, ...

  2. Redis学习笔记9--Redis持久化

    redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化.redis支持四种持久化方式,一是 Snapshotting(快照)也是默认方式:二是Appen ...

  3. redis++:Redis的两种持久化 RDB 和 AOF

    Redis持久化备份数据的方式有两种:RDB(Redis DataBase) . AOF(Append Only  File). RDB 什么是RDB: 在指定时间间隔内,将内存中的数据集快照写入磁盘 ...

  4. 尚硅谷redis学习6-持久化RDB

    是什么 持久化文件保存在dump.rdb中 持久化策略 在shutdown或flush或flushall后会立即持久化 重新启动后会从rdb文件中恢复数据 可以手动持久化 持久化失败时不允许写,如在强 ...

  5. 08_Redis持久化——RDB方式

    [简述] 持久化:Redis能将数据从内存中以某种形式同步到硬盘中,使得重启后可以根据硬盘中的记录恢复数据,这一过程就是持久化. Redis支持两种方式的持久化,简单来说如下: RDB方式:会根据指定 ...

  6. redis学习之——redis.conf配置(基本)文件学习

    # Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...

  7. Redis学习笔记--Redis配置文件redis.conf参数配置详解

    ########################################## 常规 ########################################## daemonize n ...

  8. Redis学习-redis概述

    最近刚刚接触了redis技术,对此有一些了解,这是简单做一点总结. Redis简介 首先,简单了解一下NoSQL(Not only sql),不要错误的理解为:没有SQL,而是不仅仅是SQL.NoSQ ...

  9. Redis学习笔记~Redis主从服务器,读写分离

    回到目录 Redis这个Nosql的存储系统一般会被部署到linux系统中,我们可以把它当成是一个数据服务器,对于并发理大时,我们会使用多台服务器充当Redis服务器,这时,各个Redis之间也是分布 ...

随机推荐

  1. FZU软工第四次作业-团队介绍

    目录 团队展示----旅法师 团队成员 队名----旅法师 拟作的团队项目描述 队员风采 团队首次合照 团队的特色描述 团队展示----旅法师 本次作业链接 团队成员 031602305 陈玮 031 ...

  2. ATM-java

    通过学习JAVA,我的进步不是很多,了解了不多的编程知识,但是我一直在进步,我发现我有很大的进步空间,每天都有一点点的进步使我每天都很充实.还记得我编写的第一个 经典程序“hello Word”.从那 ...

  3. 【状压DP】【HDOJ1074】

    http://acm.hdu.edu.cn/showproblem.php?pid=1074 Doing Homework Time Limit: 2000/1000 MS (Java/Others) ...

  4. 《DSP using MATLAB》Problem 5.22

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% O ...

  5. 《DSP using MATLAB》Problem 5.13

    1. 代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output ...

  6. bootstrap中的container与container-fluid的用法

    使用过bootstrap的同学都知道,其container与container-fluid都是设置文本居中,但两者还是有很大的区别. 官方给出的解释是: .container 类用于固定宽度并支持响应 ...

  7. Writing Custom Providers

    转自:https://www.terraform.io/docs/extend/writing-custom-providers.html 很详细,做为一个记录 In Terraform, a Pro ...

  8. cookie和session机制

    一.cookie和session机制之间的差别和联系 1.cookie机制 Cookie意为"甜饼",是由W3C组织提出,最早由Netscape社区发展的一种机制. 眼下Cooki ...

  9. 20 约束 异常处理 MD5 日志

    三十九, 一.类的约束 1.抛出异常    NotImplementedError 2.抽象方法 含有抽象方法的类是抽象类 抽象类中的方法全是抽象方法的是接口 抽象类不能创建对象 二.异常处理 处理完 ...

  10. 干货-递归下降分析器 笔记(具体看Python Cookbook, 3rd edition 的2.19章节)

    import re import collections # 写将要匹配的正则 NUM = r'(?P<NUM>\d+)' PLUS = r'(?P<PLUS>\+)' MIN ...