Redis面试题16

Redis 的主从复制是什么?它有什么作用?
答:主从复制是指 Redis 中的主节点将自己的数据复制给从节点的过程。主从复制为 Redis 提供了数据的冗余备份、读写分离和故障恢复等功能。
主从复制的过程如下:

主节点将自己的数据变更操作记录到内存中的命令缓冲区。
主节点将这些变更操作(命令)发送给所有从节点。
从节点收到命令后,在自己本地执行这些命令,更新自己的数据。
主从复制的作用:

数据冗余备份:通过将主节点的数据复制给从节点,实现数据的备份和冗余存储。当主节点故障时,可以快速切换到从节点继续提供服务,保证系统的高可用性。
读写分离:主从复制可以使得从节点可以接受读操作的请求,减轻主节点的读负载。主节点专注于处理写操作,从节点可以处理读操作,提高系统的并发能力和读取性能。
故障恢复:当主节点因为故障而宕机时,可以将一个从节点提升为主节点,从而实现主从切换和快速恢复。
通过主从复制,Redis 可以实现数据的冗余备份、读写分离和快速故障恢复,提高系统的可用性、并发能力和性能。

Redis 的哨兵是什么?它有什么作用?
答:Redis 的哨兵(Sentinel)是一种用于监控和管理 Redis 集群的特殊进程。哨兵可以自动监测 Redis 主节点和从节点的状态,并在主节点失效时进行故障转移。
哨兵的主要作用如下:

监控 Redis 集群:哨兵定期向 Redis 节点发送心跳检测请求,检测节点的存活状态。如果发现某个节点宕机或不可达,哨兵会将其标记为下线,并通知其他哨兵节点。
故障转移:当主节点失效时,哨兵会自动选举一个从节点,将其升级为新的主节点。哨兵会向其他从节点发送消息,让它们切换到新的主节点,并更新客户端的连接信息,实现快速的故障转移。
配置中心:哨兵也可以作为 Redis 集群的配置中心,它可以维护 Redis 集群的配置信息,并在主节点发生变更时通知其他节点进行更新。
通过哨兵的监控和管理,Redis 集群可以实现故障自动转移和动态扩缩容等功能,提高了 Redis 的高可用性和稳定性。

总结而言,主从复制可以提供数据的备份与冗余、读写分离和故障恢复等功能,而哨兵可以用于监控和管理 Redis 集群,实现故障转移和动态扩缩容等功能。两者结合使用可以提高 Redis 的可用性、性能和稳定性。
Redis 的持久化机制有哪些?它们之间有什么区别?
答:Redis 提供了两种持久化机制:快照(Snapshotting)和日志(Logging)。
快照持久化通过将内存中的数据写入到磁盘上的一个快照文件,实现数据的持久化存储。快照持久化的过程主要包括:

Fork 子进程:Redis 使用 fork() 系统调用创建一个子进程,子进程负责将数据写入到磁盘中的快照文件。
RDB(Redis Database)文件生成:子进程通过遍历整个内存数据集,将数据写入到一个临时文件中。
替换现有的 RDB 文件:子进程完成 RDB 文件的生成后,会将临时文件重命名为新的 RDB 文件,替换掉旧的 RDB 文件。
主进程继续提供服务:主进程在整个过程中会继续处理客户端请求,不会被阻塞。
日志持久化(AOF,Append Only File)则通过追加写入文件的方式记录所有写操作的日志,实现数据的持久化存储。日志持久化的过程主要包括:

将写操作追加到 AOF 文件中:每当 Redis 执行一个写操作时,会将该写操作追加到 AOF 文件的末尾。
文件同步:可以通过配置不同的策略来控制 AOF 文件何时进行同步到磁盘,包括每秒同步、每次写入操作都同步或者不同步等。
文件重写:为了避免 AOF 文件过大,可以定期进行 AOF 文件的重写。重写过程会分析并合并写操作命令,生成一个新的更紧凑的 AOF 文件。
快照持久化和日志持久化之间的区别主要体现在以下几个方面:

机制:快照持久化是通过保存内存数据的快照实现持久化,而日志持久化则是通过记录写操作的日志来实现持久化。
容灾性:快照持久化可以更好地保证数据的完整性和一致性,但可能存在一定程度的数据丢失风险;而日志持久化可以将每一次的写操作都记录下来,可以提供更好的容灾能力。
文件大小:快照持久化生成的文件较小,占用较少的磁盘空间;而日志持久化生成的 AOF 文件一般较大,但可以通过定期重写文件来减小文件大小。
启动恢复:快照持久化需要将整个快照文件加载到内存中才能恢复数据,可能有较长的恢复时间;而日志持久化只需要将 AOF 文件重新执行一次即可恢复数据,恢复时间较短。
根据不同的业务需求和特点,可以选择快照持久化或者日志持久化,或者二者同时使用,以满足数据持久化的要求。

Redis 支持哪些数据结构?
答:Redis 支持多种数据结构,包括:
字符串(String):最基础的数据结构,可以存储字符串、整数或者浮点数。
列表(List):双向链表,可以在头部或尾部进行元素的插入、删除和修改操作。
集合(Set):无序的字符串集合,支持元素的添加、删除和查找操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/625168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短视频IP运营流程架构SOP模板PPT

【干货资料持续更新,以防走丢】 短视频IP运营流程架构SOP模板PPT 部分资料预览 资料部分是网络整理,仅供学习参考。 抖音运营资料合集(完整资料包含以下内容) 目录 抖音15秒短视频剧本创作公式 在抖音这个短视频平台上&#…

【FastAPI】路径参数

路径参数 from fastapi import FastAPIapp FastAPI()app.get("/items/{item_id}") async def read_item(item_id):return {"item_id": item_id}其中{item_id}就为路径参数 运行以上程序当访问 :http://127.0.0.1:8000/items/fastapi时候 将会…

SpringBoot集成RabbitMq,RabbitMq消费与生产,消费失败重发机制,发送签收确认机制

RabbitMq消费与生产,消费失败重发机制,发送确认机制,消息发送结果回执 1. RabbitMq集成spring bootRabbitMq集成依赖RabbitMq配置RabbitMq生产者,队列,交换通道配置,消费者示例 2. RabbitMq消息确认机制消息…

力扣labuladong一刷day59天动态规划

力扣labuladong一刷day59天动态规划 文章目录 力扣labuladong一刷day59天动态规划一、509. 斐波那契数二、322. 零钱兑换 一、509. 斐波那契数 题目链接:https://leetcode.cn/problems/fibonacci-number/description/ 思路:这是非常典型的一道题&#x…

【例7.5】 取余运算(mod) 快速幂

1326:【例7.5】 取余运算(mod) 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 输入b,p,k的值,求bpmodk 的值。其中b,p,kk为长整型数。 【输入】 输入b,p&#xf…

Scott用户数据表的分析

Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 如果想要知道某个用户所有的数据表: select * from tab; 此时结果中一共返回了四张数据表,分别为部门表(dept) ,员工表(emp&a…

【LV12 DAY20 RTC实验】

编程实现通过LED状态显示当前电压范围,并打印产生低压警报时的时间 注: 电压在1501mv~1800mv时,LED2、LED3、LED4、LED5点亮 电压在1001mv~1500mv时,LED2、LED3、LED4点亮 电压在501mv~1000mv时,LED2、LED3点亮 电压在…

C++算法学习心得六.回溯算法(1)

1.回溯算法理论基础 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案 回溯法解决的问题 组合问题:N个数里面按一定规则找出…

HTML--CSS--浮动布局及定位布局

正常文档布局 块元素独占一行 行内元素在有多个的时候,就是从左到右排在一行 块元素包括:div,p,hr 行内元素:span,i,img 浮动布局 float 属性: left 向左 right 向右 作用我目前看起来就是浮动元素的宽度是由内容决定的&#x…

Doris学习笔记-Java自定义UDAF

项目最近需要做一些数据统计方面的东西,发现数据字段都是很长一串数字的字符串,Doris自带的函数无法对其进行相应的运算操作,需要扩展实现相关的操作运算。 主要参考官方的文档资料完成相关的自定义扩展。需要注意的是在使用Java代码编写UDAF时,有一些必须实现的函数(标记…

网络安全服务

有效防御Cc、API接口、http、tcp、WEB应用扫描/爬虫、SYN、WAF、DDOS、UDP、入侵、渗透、SQL注入、XXS跨站脚本攻击、远程恶意代码执行、session ion fixation、Webshell攻击、恶意请求,恶意扫描、暴击破解、CSRF等各种攻击。不用迁移数据,服务器用哪里…

HDFS和MapReduce综合实训

文章目录 第1关:WordCount词频统计第2关:HDFS文件读写第3关:倒排索引第4关: 网页排序——PageRank算法 第1关:WordCount词频统计 测试说明 以下是测试样例: 测试输入样例数据集:文本文档test1…

Java实战之每日海报

前言 使用java生成每日海报。 项目起因是巧合下遇到了一篇很棒的文档,说的是用程序来实现每日生成一个海报。如果之后加上自动发布的功能,简直就是太棒了啊! 样例图如下: 每日海报 思路 访问某词站的API获取网络图片&#…

GBASE regexp_replace函数 与 db2 translate函数比较

db2 translate函数 以下内容参考自文档: translate 函数 官方示例: 示例1: fn:translate(Test literal,el,om) -- RETURN RESULT: Tost mitoram上述式子的意思为: 对于字符串:‘Test literal’,使用o 替代 e,使用 m…

在线客服系统如何与社交媒体集成?

在线客服系统与社交媒体的集成可以实现以下功能: 直接接入社交媒体平台:通过API集成,客服系统可以与主流社交媒体平台(如微信、微博、Facebook等)直接对接,客户可以直接在社交媒体上发起咨询或投诉&#x…

Java持久层框架之争:选择最佳方案来提升你的开发效率!

1、前言 在现代软件开发领域,选择适合的持久层框架是至关重要的一步。持久层框架可以帮助我们管理数据访问、数据库连接、事务处理等复杂的数据库操作,从而提升开发效率和代码质量。 然而,在众多的Java持久层框架中,选择最佳方案并…

ActiveMQ:专注消息传递,助您构建高效稳定的系统

在数字化世界的今天,应用程序和系统之间的通信变得日益重要,为了确保数据能够在不同的服务和组件之间高效、可靠地传输,消息队列技术应运而生。 Apache ActiveMQ 作为一种流行的开源消息队列技术,为企业级应用提供了强大的支持&am…

LeeCode前端算法基础100题(19)反转字符串中的单词

一、问题详情: 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾随空格…

防止网站被采集的10个技巧

防止网站被采集的10个技巧 一、robots.txt文件设置 robots.txt文件是用来告诉搜索引擎哪些页面可以被抓取,哪些页面不应该被抓取的。通过修改robots.txt文件,可以控制搜索引擎爬虫对网站的访问行为。 二、设置meta标签 在网页头部添加meta标签&#x…

算法通关村番外篇-LeetCode编程从0到1系列五

大家好我是苏麟 , 今天带来算法通关村番外篇-LeetCode编程从0到1系列五 . 数学 1523. 在区间范围内统计奇数数目 描述 : 给你两个非负整数 low 和 high 。请你返回 low 和 high 之间(包括二者)奇数的数目。 题目 : LeetCode 1523. 在区间范围内统计奇…