客户端还可以使用 SAVE
命令来创建一个快照,接收到 SAVE
命令的 Redis服务器在快照创建完毕之前将不再响应任何其他的命令;
注意:SAVE
命令并不常用,使用 SAVE
命令在快照创建完毕之前,Redis处于阻塞状态,无法对外服务。
如果用户在 redis.conf 中设置了 save 配置选项,Redis 会在 save 选项条件满足之后自动触发一次 BGSAVE
命令;如果设置多个 save 配置选项,当任意一个 save 配置选项条件满足,Redis 也会触发一次 BGSAVE
命令。
save 900 1 表示 900s 内,执行了 1次 数据库操作则自动创建快照,以此类推。
当 Redis 通过 SHUTDOWN
指令接收到关闭服务器的请求时,会执行一个 SAVE
命令,阻塞所有的客户端,不再执行客户端执行发送的任何命令,并且在 SAVE
命令执行完毕之后关闭服务器。
配置文件中可以修改生成快照名称以及快照保存位置:
生成快照名字, 默认为 dump.rdb
dbfilename dump.rdb
快照保存位置, 默认保存在 redis-cli 同级目录
dir ./
只追加日志文件 AOF (Append Only File)
=================================================================================================
在 Redis 的默认配置中 AOF持久化机制是没有开启的,需要在配置中开启;
开启 AOF持久化
appendonly yes
生成的日志文件名称
appendfilename “appendonly.aof”
aof日志文件路径与快照保存位置设置的是同一个
dir ./
AOF 有 3 种 日志追加频率:
-
always 【谨慎使用】
-
everysec 【推荐】
-
no【不推荐】
-
说明:每个 redis写命令 都要同步写入硬盘,严重降低 redis 速度;
-
解释:如果用户使用了 always 选项,那么每个 redis 写命令都会被写入硬盘,从而将发生系统崩溃时出现的数据丢失减到最少;遗憾的是,因为这种同步策略需要对硬盘进行大量的写入操作,所以 redis 处理命令的速度会受到硬盘性能的限制;
-
注意:转盘式硬盘(机械硬盘)在这种频率下200左右个命令/s;固态硬盘(SSD) 几百万个命令/s;
-
警告:使用SSD用户请谨慎使用 always 选项,这种模式不断写入少量数据的做法有可能会引发严重的 写入放大 问题,导致将固态硬盘的寿命从原来的几年降低为几个月。
-
说明:每秒 执行一次同步显式的将多个写命令同步到磁盘;
-
解释:为了兼顾数据安全和写入性能,可以使用 everysec 选项,让 redis 每秒一次的频率对AOF文件进行同步;redis 每秒同步一次AOF文件时性能和不使用任何持久化特性时的性能相差无几,而通过每秒同步一次AOF文件,redis可以保证,即使系统崩溃,用户最多丢失一秒之内产生的数据。
-
说明:由操作系统决定何时同步;
-
解释:使用 no 选项,将完全有操作系统决定什么时候同步AOF日志文件,这个选项不会对 redis 性能带来影响,但是系统崩溃时,会丢失不定数量的数据,另外如果用户硬盘处理写入操作不够快的话,当缓冲区被等待写入硬盘数据填满时,redis 会处于阻塞状态,并导致 redis 的处理命令请求的速度变慢。
appendfsync always
appendfsync everysec
appendfsync no
============================================================================
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后
现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**
最后
现在正是金三银四的春招高潮,前阵子小编一直在搭建自己的网站,并整理了全套的**【一线互联网大厂Java核心面试题库+解析】:包括Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等**
[外链图片转存中…(img-qtYMoMmU-1711782902413)]