Redis6.x持久化介绍和RDB讲解

DBC 1.6K 0

简介: Redis6.x持久化配置介绍和RDB讲解

  • Redis持久化介绍
    • Redis是一个内存数据库,如果没有配置持久化,redis重启后数据就全丢失
    • 因此开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。
  • 两种持久化方式
    • RDB (Redis DataBase)
    • AOF (append only file)
  • RDB持久化介绍
    • 在指定的时间间隔内将内存中的数据集快照写入磁盘
    • 默认的文件名为dump.rdb
    • 产生快照的情况
      • save
        • 会阻塞当前Redis服务器,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止
      • bgsave
        • fork创建子进程,RDB持久化过程由子进程负责,会在后台异步进行快照操作,快照同时还可以响应客户端请求
      • 自动化
        • 配置文件来完成,配置触发 Redis的 RDB 持久化条件
        • 比如 "save m n"。表示m秒内数据集存在n次修改时,自动触发bgsave
      • 主从架构
        • 从服务器同步数据的时候,会发送sync执行同步操作,master主服务器就会执行bgsave
  • 优点
    • RDB文件紧凑,全量备份,适合用于进行备份和灾难恢复
    • 在恢复大数据集时的速度比 AOF 的恢复速度要快
    • 生成的是一个紧凑压缩的二进制文件
  • 缺点
    • 每次快照是一次全量备份,fork子进程进行后台操作,子进程存在开销
    • 在快照持久化期间修改的数据不会被保存,可能丢失数据

 

  • 核心配置
    • dir 持久化文件的路径
    • dbfilename 文件名
​
#任何ip可以访问
bind 0.0.0.0
​
#守护进程
daemonize yes
​
#密码
requirepass 123456
​
#日志文件
logfile "/usr/local/redis/log/redis.log"
​
#持久化文件名称
dbfilename xdclass.rdb
​
#持久化文件存储路径
dir /usr/local/redis/data
​
#持久化策略, 10秒内有个1个key改动,执行快照
save 10 1
​
######之前配置######
​
#导出rdb数据库文件压缩字符串和对象,默认是yes,会浪费CPU但是节省空间
rdbcompression yes
# 导入时是否检查
rdbchecksum yes


分布式缓存Redis6.x持久化配置RDB操作实战

  • 配置持久化
    • dir 持久化文件的路径
    • dbfilename 文件名
  • save
  • bgsave
  • 配置文件触发
bind 0.0.0.0
​
daemonize yes
​
requirepass 123456Xdclass
​
logfile "/usr/local/redis/log/redis.log"
​
dbfilename xdclass.rdb
​
dir /usr/local/redis/data
​
#关闭rdb
#save ""
​
#10秒2个key变动则触发rdb
save 10 2
#100秒5个key变动则触发rdb
save 100 5
​
#压缩
rdbcompression yes
#检查
rdbchecksum yes
备注: linux内存分配策略

0 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程

1 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。
2 表示内核允许分配超过所有物理内存和交换空间总和的内存

解决方式
echo 1 > /proc/sys/vm/overcommit_memory


持久化配置
vim /etc/sysctl.conf

改为
vm.overcommit_memory=1
修改sysctl.conf后,需要执行 sysctl -p 以使生效。

Redis6.x持久化介绍和RDB讲解插图

发表评论 取消回复
表情 图片 链接 代码

分享