Redis的持久化

简介

   Redis 是一个内存数据库,既然数据都是存放在内存中,当服务器重启或宕机就会导致内存数据丢失,如果 Redis 仅仅做为一个缓存服务器来使用的话,这个并没有什么影响,但是做为内存数据库,这问题可就大了,当服务器出现重启或者宕机的现象,Redis 中存储的登录信息、购物车信息、用户浏览记录等数据都会被清空,这样的后果是无法接受的,那么我们怎么像关系型数据库那样,为 Redis 做持久化呢?Redis 给提供了两种解决方案,下面我们就来对这两种方案进行一下讲解和演示。

什么是持久化?

  把内存中的数据持保存到磁盘。这个过程就是持久化。 当redis启动时会从磁盘上读取数据并加载到内存。

redis持久化的方式

  Redis 是一个内存数据库,为了保证数据的持久性,它提供了两种持久化方案:

1、 RDB 方式(默认)   
2、 AOF 方式

  RDB:以快照的方式进行持久化。 在一定时间间隔内进行快照。把数据保存到磁盘;Redis会在指定的情况下触发快照. ----默认dump.rdb

  1. save命令
  2. bgsave命令
  3. 配置redis配置文件。

save和bgsave的区别

  执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止。具体流程如下:

在这里插入图片描述  执行完成的时候如果存在老的RDB文件,新的就会代替掉旧的,我们的客户端可能都是几万或者几十万,显然这种方式不可取。
  执行bgsava命令时,Redis会在后台一部进行快照操作,快照同时还可以响应客户端请求,具体流程如下:
在这里插入图片描述

通过配置文件来触发RDB ----- bgsave命令

在这里插入图片描述RDB持久化方式的优缺点
有点:

  1. RDB文件紧凑,全量备份,非常适合用于进行备份和灾难恢复。
  2. bgsave生成RDB文件的时候,redis主进程会fork()一个子进程来处理所有保存工作,主进程不需要进行任何磁盘IO操作。
  3. RDB在恢复大数据集时的速度比AOF的恢复速度要快。

缺点:

  • 快照持久化期间修改的数据不会被保存,可能丢失数据。数据完整性比较差。

什么时候会触发aof

  AOF默认是没有开启。需要配置手动开启。
在这里插入图片描述调整完还是没有aof文件这时你需要重新启动redis(结束进程)

在这里插入图片描述在这里插入图片描述

ps -ef | grep redis
kill -9 “你电脑上redis的端口号”
redis-server redis.conf 
redis-cli
save

aof的优缺点

优点

  1. AOF可以更好的保护数据不丢失,一般AOF会每隔1秒,通过一个后台线程执行一次fsync操作,最多丢失1秒钟的数
  2. AOF日志文件没有任何磁盘寻址的开销,写入性能非常高,文件不容易破损。
  3. AOF日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写。

缺点

  1. 对于同一份数据来说,AOF日志文件通常比RDB数据快照文件更大.
  2. 恢复数据时时间要比快照模式慢很多。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值