第一节: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. python django day 1

    cmd d:\python\python.exe pip install --upgrade pip d:\python\python.exe pip install Django 123.py im ...

  2. java知识 特殊符号转换

    ■情况 想把代码中的出现  “  ’等特殊符号时,在他们的前面,转换时自动加 \    最后转换成json 决定用ObjectMapper这个类,先准备一个Map,之后,map作为一个参数,调用Obj ...

  3. python------模块定义、导入、优化 ------->xml模块

    1. xml模块 引用参考原文链接:https://www.cnblogs.com/python-gm/p/8032465.html      谢谢 xml是实现不同语言或程序之间进行数据交换的协议, ...

  4. 【BZOJ4553】【TJOI2016】【HEOI2016】序列

    cdq和整体二分之间的关系好迷啊 原题: 佳媛姐姐过生日的时候,她的小伙伴从某宝上买了一个有趣的玩具送给他.玩具上有一个数列,数列中某些项的值 可能会变化,但同一个时刻最多只有一个值发生变化.现在佳媛 ...

  5. Centos7禁止或者允许开机启动服务

    [root@bogon rsyslog.d]# systemctl is-enabled httpd disabled [root@bogon rsyslog.d]# systemctl status ...

  6. linux之数据备份

    第一种方法:tar备份 [root@bogon ~]# cat bp/linux.txt no centos [root@bogon ~]# tar cvf bp.tar bp //打包bp目录 bp ...

  7. MySQL--批量插入导致自增跳号问题

    对于批量插入数据的操作,MySQL申请自增的策略为: 在批量插入语句执行过程中,申请策略: .第一次申请自增值时,会分配1个 .在N次申请自增值时,会分配上一次(第N-1次)的2倍. 测试Demo: ...

  8. hasura graphql-engine graphql2chartjs 方便的graphql 转换chartjs 的类库

    graphql2chartjs 是hasura graphql-engine 团队开源的方便graphql 转换为chartjs 的类库,我们可以方便的 用来进行ChartJS chart 开发 一张 ...

  9. Linux系统运维故障排查

    一.思路 1.处理问题要求 2.一般思路 二.具体问题 1.网络问题 (1)网络不通 (2)网络很慢 2.硬件问题 3.操作系统问题 (1)系统无法正常启动 (2)系统运行慢或死机 4.服务或程序问题 ...

  10. CIDR合并

    code #include <iostream> #include <list> #include <sstream> #include <vector> ...