栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

redis中的持久化 RDB && AOF

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

redis中的持久化 RDB && AOF

1.环境

linux环境下,使用brew下载,软件及其配置文件存放路径分别为

软件: /opt/homebrew/Cellar/redis/

但是配置文件存放在: /opt/homebrew/etc/redis.conf      (***注意***)

 

点开这个配置文件,与window的redis.conf配置类相差不大,但是注意,比如它生成的dump.rdb  appendonly.aof文件的存放路径要按照brew的来, 

现在让我们开始着手吧!!! 

2.RDB 2.1  RDB的备份与恢复

修改更短的时间如20秒发生3次修改则进行一次保存到dump.rdb文件,如果不明显,可以改让它保存的更勤一些,如 save 10 1 等等

执行flushall,并查看dumb.rdb的文件大小,没有值时为88,并且执行如下操作,

127.0.0.1:6379[9]> flushall
OK
127.0.0.1:6379[9]> select 0
OK
127.0.0.1:6379> set k1 11
OK
127.0.0.1:6379> set k2 22
OK
127.0.0.1:6379> set k3 33

进行简单的操作,我们明显地感知到这个dump.rdb文件的增大 

 接下来,我们按顺序做如下的操作,拷贝该dump.rdb文件到同目录下,并且删除redis中的数据,然后关闭redis,

在把dump22.rdb(121字节)修改为dump.rdb文件,原来的那个rdb可以直接删除,反正到最后  /var/db/redis下只有一个dumb.rdb (121字节)重启redis,原来的数据又回来了

 2.2 RDB的执行流程以及为何不能保证数据的完整性

流程如上所示,父进程fork一个完全一样的子进程,进行IO,将数据持久化到dump.rdb中,但是,比如说,我们规定save 20 3 ,但是我可能只在这20的时间间隔里只有一次修改,然后在这个间隔里面突然,redis宕掉了,那最后这一次数据会没被保存到而丢失,存在这种可能。

3.AOF

开启aof ,默认不开启

他有三种追加同步的频率,默认每秒,就是每秒给你同步写的内容

 和rdb持久化文件存放的位置有一个aof文件,就同步写入我们的写操作,

但是不记录读操作,比如

 因而,如果你精确到always,每次都只有写,则aof直接追加,则不存在数据丢失,但是性能会差一些,而且一会追加,会占用比rdb更多的内存。

总结

具体使用哪一种,看需要,如果只是做内存缓存,甚至都可以不用,但是,不建议单独只开aof,可能有bug.

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1007682.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号