美文网首页Redis
Redis第1️⃣6️⃣课 RDB持久化

Redis第1️⃣6️⃣课 RDB持久化

作者: 小超_8b2f | 来源:发表于2019-05-01 16:18 被阅读1次

一、 什么是持久化

Redis所有的数据保存在内存中,对数据的更新将异步地保存在磁盘上


持久化方式

二、RDB

1)什么是RDB

RDB is what

2)RDB触发机制-主要的三种方式

  • 1. save命令(同步)

将数据同步进行一个完整的拷贝,拷贝到rdb文件中。如果数据量大的话将阻塞
save触发生成rdb文件,若已经有rdb文件了,则新rdb替换老的rdb文件

127.0.0.1:6379> save
OK
127.0.0.1:6379>
同步步生成Redis内存数据快照文件:rdb文件
  • 2. bgsave命令(back ground save 异步)

异步生成Redis内存数据快照文件:rdb文件 save命令与bgsave命令对比
  • 3. 配置文件中设置自动生成策略

自动生成策略
----------------------------------默认配置---------------------------------------
#   In the example below the behaviour will be to save:
#   after 900 sec (15 min) if at least 1 key changed
#   after 300 sec (5 min) if at least 10 keys changed
#   after 60 sec if at least 10000 keys changed
save 900 1
save 300 10
save 60 10000

stop-writes-on-bgsave-error yes
dbfilename dump.rdb  
dir ./
rdbcompression yes  #是否采用压缩格式
rdbchecksum yes  # 在文件末尾进行循环冗余校验
----------------------------------默认配置---------------------------------------

\color{red}{自定义配置:}

save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
dbfilename dump-${port}.rdb # 一台机器上启动多个Redis,根据端口号区别
dir /bigdiskpath
rdbcompression yes
rdbchecksum yes

3)触发机制-不容忽略的方式

  1. 全量复制 (主从复制的时候,主节点会自动生成rdb)
  2. debug reload : debug级别的重启Redis服务器,不需要清空内存的redis-server重启
  3. shutdown save 命令

4)实验

1)验证save命令是阻塞的

 1. 按照自定义配置启动redis
 2. 启动2个redis-cli,一个先执行save 命令,另一个后执行get key,发现只有save执行完成后get命令才起作用

2)验证bgsave命令是非阻塞的且会产生子进程

 1. 一shell窗口执行:bgsave
 1. 另外2个shell窗口分别执行如下2图中命令


bgsave子进程 bgsave过程中产生的临时文件 bgsave执行结束,临时文件被删除,rdb文件被替换
3)验证配置文件自动save策略
# 一分钟内5次key变化便生成rdb,redis-6379.config中设置
save 60 5 

####如下是shell中执行的命令
redis-cli shutdown
redis-server /usr/local/reds/etc/redis-6379.config

###一分钟内在redis-cli中执行如下命令:
set key1 value1
set key2 value2
set key3 value3
set key4 value4
set key5 value5

#结果发现生成了临时文件,生成了新的rdb文件

4)总结

  1. RDB是Redis内存到硬盘的快照,用于持久化
  2. save通常会阻塞Redis
  3. bgsave不会阻塞Redis,但是会fork新的进程 (fork()是unix生成子线程的接口)
  4. save自动配置满足任一条件就会被执行
  5. 一些触发机制不容忽视

相关文章

  • Redis持久化

    Redis持久化方式有两种:RDB和AOF。 1 RDB持久化 RDB(Redis Database)持久化是把当...

  • 2020-02-21 记录redis(8)

    redis持久化,两种持久化方式: RDB方式 AOF方式 持久化的使用方式: RDB 优势: 1、redis的数...

  • Redis缓存持久化策略

    Redis RDB持久化原理 简介:rdb持久化方案配置讲解,redis的开发者是怎么实现rdb的 rdb持久化配...

  • redis的持久化

    redis持久化一般支持两种方式,快照持久化(rdb)和日志持久化(aof) rdb持久化 1. rdb的配置选项...

  • redis-2

    redis-2 redis的持久化 Redis 提供了 RDB 和 AOF 两种持久化方式。 RDB RDB 是把...

  • Redis第1️⃣6️⃣课 RDB持久化

    一、 什么是持久化 Redis所有的数据保存在内存中,对数据的更新将异步地保存在磁盘上 二、RDB 1)什么是RD...

  • 03-redis持久化

    Redis持久化 两种方式持久化: RDB持久化 - 全量 AOF持久化 - 增量 RDB持久化 RDB文件的生成...

  • Redis的持久化方式:RDB和AOF

    一,redis的持久化方式:RDB和AOF RDB,即Redis Database RDB持久化方式:在指定的时间...

  • 「高频面试题」Redis的持久化方式有哪些?

    RDB RDB(Redis DataBase)持久化是把当前Redis中全部数据生成快照保存在硬盘上。RDB持久化...

  • redis mongodb持久化的方式

    redis持久化方式(两种) RDB持久化 redis提供了RDB持久化的功能,这个功能可以将redis在内存中的...

网友评论

    本文标题:Redis第1️⃣6️⃣课 RDB持久化

    本文链接:https://www.haomeiwen.com/subject/cgbinqtx.html