首页 > 数据库 >面试官:Redis持久化能关吗?怎么关?

面试官:Redis持久化能关吗?怎么关?

时间:2024-01-22 10:23:44浏览次数:37  
标签:AOF 面试官 持久 Redis 化能关 混合 关闭 RDB

数据持久化是指将数据从内存中,保存到磁盘或其他持久存储介质的过程,这样做的目的是为了保证数据不丢失。

而 Redis 的持久化功能默认是开启的,这样做的目的也是为了保证程序的稳定性(防止缓存雪崩、缓存击穿等问题)和数据不丢失。

Redis持久化能关吗?怎么关?

Redis 持久化默认是开启的,但可以手动关闭

Redis 4 之后它的持久化总共有以下三种方式:

  1. RDB(Redis DataBase)持久化:快照方式持久化,将某一个时刻的内存数据,以二进制的方式写入磁盘。
  2. AOF(Append Only File)持久化:文件追加持久化,记录所有非查询操作命令,并以文本的形式追加到文件中。
  3. 混合持久化:RDB + AOF 混合方式的持久化,Redis 4 之后新增的方式,混合持久化是结合了 RDB 和 AOF 的优点,在写入的时候,先把当前的数据以 RDB 的形式写入文件的开头,再将后续的操作命令以 AOF 的格式存入文件,这样既能保证 Redis 重启时的速度,又能减低数据丢失的风险。

所以,我们要关闭 Redis 持久化,需要将以上三种持久化方式全部关闭,具体操作如下。

① 关闭RDB持久化

在 Redis 的配置文件 redis.conf 中,你可以将以下配置项设置为禁用状态:

save ""  # 将 save 参数列表清空,表示不进行任何条件下的数据保存

或者直接注释掉所有 save 行以取消 RDB 持久化。

② 关闭AOP持久化

在 redis.conf 配置文件中,将以下配置项修改为禁用 AOF:

appendonly no  # 设置为 no,表示关闭 AOF 持久化

③ 关闭混合持久化

在 redis.conf 配置文件中,将以下配置项修改为禁用混合持久化:

rdb-aof-use-rdb-preamble no # no 表示关闭混合持久化

或者是将混合持久化这行配置给注释掉,如下所示:

# rdb-aof-use-rdb-preamble yes

注意:以上持久化关闭之后,都需要重启 Redis 服务才能生效。

小结

Redis 持久化功能默认是开启的,这样做的目的也是为了保证程序的稳定性(防止缓存雪崩、缓存击穿等问题)和保证数据不丢失。想要手动关闭 Redis 持久化,需要将 RDB、AOF 和混合持久化全部关闭才行,并且关闭之后需要重启 Redis 服务才能生效。

课后思考

Redis 关闭持久化之后,数据一定会丢失吗?为什么?


本文已收录到我的面试小站 www.javacn.site,其中包含的内容有:Redis、JVM、并发、并发、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、设计模式、消息队列等模块。

标签:AOF,面试官,持久,Redis,化能关,混合,关闭,RDB
From: https://www.cnblogs.com/vipstone/p/17979399

相关文章

  • day40 如何运维管理超1k+node节点 - 站在面试官角度谈面试 (13-14)
    13、如何运维管理超1k+node节点(四节)一、数据背景100,000+Pods1300+Nodes3集群(单:11Master+17ETCD)ToC服务行业二、瓶颈问题Apiserver调度,延迟问题;Controller不能及时从APIServer感知到最新的变化,处理的延时较高;Scheduler延迟高、吞吐低,无法适应业务日常需求;ET......
  • django使用redis集群、连接池、MySQL连接池
    redis的相关设置CACHES={"default":{"BACKEND":"django_redis.cache.RedisCache","LOCATION":["redis://127.0.0.1:6379/1","redis://127.0.0.1:6380/1",#...],"OPTIONS":{"CLIENT_......
  • Redis常见面试题
    一、Redis做什么的,在哪些场景下使用Redis是一个开源的内存数据存储系统,它被广泛用于缓存、消息队列、实时统计分析、任务队列等场景。以下是一些常见的使用场景:缓存:Redis的主要用途之一是作为缓存层。它可以将经常访问的数据存储在内存中,以提高读取速度。常见的应用场景包括页面缓......
  • redis后台启动带脚本命令
    redis后台启动带脚本命令(windwos)方法11.新建.txt文件2.编辑文件内容@echooffstartcmd/c"cd/dD:\JAVA\Redis-x64-3.2.100&&redis-server.exeredis.windows-service.conf&&taskkill/f/t/imcmd.exe"改为.bat启动方法2服务启动如果原来已有redis服务,先将其卸载red......
  • 详解Redisson
    第1章:Redisson简介大家好,我是小黑,咱们今天来聊聊Redisson,Redisson不只是简单地对Redis进行了封装,它还提供了一系列高级的分布式Java数据结构,像是分布式锁、原子长整型这种。首先,Redisson的核心特点是什么呢?它提供了对Redis的各种操作的高层封装,这让咱们在使用Redis时更加方便、......
  • 【docker-compose】Redis安装教程
    仅供学习参考,请勿轻易在生产环境使用0.文件目录下面的文件按照这个目录层级放置,首先创建/docker/redis文件夹,/docker/redis对应下边图中REDIS。1.创建目录mkdir-p/docker/redis/conf/docker/redis/data/docker/redis/logschmod-R777/docker/redis/conf/doc......
  • 面试官:SpringBoot如何实现缓存预热?
    缓存预热是指在SpringBoot项目启动时,预先将数据加载到缓存系统(如Redis)中的一种机制。那么问题来了,在SpringBoot项目启动之后,在什么时候?在哪里可以将数据加载到缓存系统呢?实现方案概述在SpringBoot启动之后,可以通过以下手段实现缓存预热:使用启动监听事件实现缓存预热。使......
  • 面试官:分库分表后如何生成全局ID?
    分库分表后就不能使用自增ID来作为表的主键了,因为数据库自增ID只适用于单机环境,但如果是分布式环境,是将数据库进行分库、分表或数据库分片等操作时,那么数据库自增ID就会生成重复ID,从而导致业务查询上的问题。所以此时,可以使用UUID或雪花ID来作为全局主键ID。1.UUID作为......
  • 面试官:如何保证本地缓存的一致性?
    有人可能看到“本地缓存”这四个字就会觉得不屑,“哼,现在谁还用本地缓存?直接用分布式缓存不就完了嘛”。然而,这就像你有一辆超级豪华的房车一样,虽然它空间很大,设备很全,但你去市中心的时候,依然会开小轿车一样,为啥?好停车啊!所以,不同的缓存类型是有不同得使用场景的。并且,为了防止缓存雪......
  • springboot+mybatis-plus+redis整合(附上脚手架完整代码)
    首先新建一个springboot项目next到这里的时候,我们可以选择用jdk几,还有就是Group,这个一般就是com.公司名字了,artifact就是项目名字。个人开发我还是喜欢用com.名字前缀哈。到了这一步的话,如果对这个项目有什么别的需求,比如需要用到mybatis啥的可以勾相应的选项。其实就是idea自动帮......