【NoSQL】Redis高级应用 之 数据持久化

本文探讨了Redis的数据持久化,包括基于快照和文件追加两种方式。基于快照持久化通过定时将内存数据同步到硬盘,而基于文件追加则记录更改命令以在重启时还原数据。文章还提到了配置持久化目录和模拟数据持久化的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是数据持久化 ?

    Redis 本身是基于内存来存储数据,重启后数据会消失,所以将数据同步到硬盘中可实现永久保存,此过程称为数据持久化操作。

 常见的持久化方式

   1、基于快照的方式:redis安装一定的周期把内存里面的数据同步到磁盘文件里面。

   2、基于文件追加:redis会把对redis数据造成更改的命令记录到日志文件里面,然后再一次重启,执行日志文件里面对redis写的操作,达到数据还原。  

  基于快照的持久化

修改配置文件,开启基于快照的选项:

  save 900 1            #900秒内如果超过1key被修改,则发起快照保存
  save 300 10          #300秒内容如超过10key被修改,则发起快照保存
  save 60 10000     #60秒内容如超过10000key被修改,则发起快照保存
  #以上为系统默认配置
 

     持久化目录(保存到磁盘上的文件)

[root@localhost ~]# cd /var/lib/redis/
[root@localhost redis]# ls
dump.rdb

     模拟数据持久化:

[root@localhost redis]# systemctl stop redis     #停止服务
[root@localhost redis]# rm -f dump.rdb           #删除文件
[root@localhost redis]# systemctl start redis    #重启服务
[root@localhost redis]# ls                       #查看文件
[root@localhost redis]# redis-cli                #登录
127.0.0.1:6379> set name tom                     #设置数据
OK
127.0.0.1:6379> get name                  
"tom"
127.0.0.1:6379> BGSAVE                           #提前保存 
Background saving started
127.0.0.1:6379> exit                
[root@localhost redis]# ls                       #文件自动生成
dump.rdb
[root@localhost redis]# systemctl restart redis  #重启服务
[root@localhost redis]# redis-cli get name       #查看数据
"tom"

基于文件追加方式持久化

    注意:默认没有开启

[root@localhost ~]# vim /etc/redis.conf          #修改配置文件
#appendonly no         
appendonly yes                    #基于日志文件追加方式开启持久化 

appendfilename "appendonly.aof"   #日志文件

#备份文件周期
# appendfsync always              #每次收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化
appendfsync everysec              #每秒钟强制写入磁盘一次,在性能和持久化方面做了很好折中(推荐)
# appendfsync no                  #完全依赖os,性能最好,持久化没保证

[root@localhost ~]# systemctl restart redis      #重新启动服务
[root@localhost ~]# ls /var/lib/redis/           #查看追加文件生成
appendonly.aof  dump.rdb

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值