第一节: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. 给Linux服务器设置共享文件目录

    通过samba软件 :yum install samba 修改配置文件:vi /etc/samba/smb.conf 添加 [WORKSPACE] comment = workspace       ...

  2. hihocoder1490 Tree Restoration 模拟

    There is a tree of N nodes which are numbered from 1 to N. Unfortunately, its edges are missing so w ...

  3. redis 部署相关

    ★ 启动: 配置好环境变量后:打开一个cmd窗口,执行redis-server.exe就可以启动redis了. https://blog.csdn.net/weixin_42423819/articl ...

  4. Linux内核Inotify机制学习笔记

    一.Inotify简介: Inotify是一种文件变化通知机制,Linux内核从2.6.13开始引入.它是一个内核用于通知用户空间程序文件系统变化的机制.开源社区提出用户态需要内核提供一些机制,以便用 ...

  5. MySQL--查看数据库连接信息

    ===================================== 查看当前连接到数据库的用户和Host ## 查看当前连接到数据库的用户和Host ## SELECT DISTINCT US ...

  6. parcel (另一个打包工具)知识点

    ParcelJS 本身是 0 配置的,但 HTML.JS 和 CSS 分别是通过 posthtml.babel 和 postcss 处理的,所以我们得分别配 .posthtmlrc..babelrc ...

  7. ipset可使iptables一次性封多个ip

    ipset是什么? ipset是iptables的扩展,它允许你创建 匹配整个地址集合的规则.而不像普通的iptables链只能单IP匹配, ip集合存储在带索引的数据结构中,这种结构即时集合比较大也 ...

  8. 2.初步认识Angular2

    简述:一个完整的Angular应用主要由六个重要部分构成,分别是:组件,模板,指令,服务,依赖注入,和路由.这些组成部分各司其职,而又紧密协作. 其中,与用户直接打交互的是模板视图,它是构成组件的要素 ...

  9. PHP优化思路

    想起来记录一下自己对PHP的优化思路 针对Nginx和 PHP-FPM进行优化 首先应该分为代码层面.配置层面.架构层面 代码层面 参见了https://segmentfault.com/a/1190 ...

  10. WebApi安全性 使用TOKEN+签名验证 (秘钥是GUID的,私有的,不是雙方的,并不在网络连接上传输)

    转http://www.cnblogs.com/MR-YY/archive/2016/10/18/5972380.html WebApi安全性 使用TOKEN+签名验证   首先问大家一个问题,你在写 ...