Redis面试题13

Redis 的发布订阅(Pub/Sub)模式是什么?
Redis 的发布订阅模式允许多个客户端订阅一个频道,当消息被发布到该频道时,所有订阅该频道的客户端都会收到该消息。Redis 的发布订阅模式分为两个角色:发布者和订阅者。

  • 发布者通过 PUBLISH 命令发布一个消息到指定的频道。
  • 订阅者使用 SUBSCRIBE 命令订阅一个或多个频道,收到相应的消息时通过回调函数进行处理。
  • 取消订阅可以使用 UNSUBSCRIBE 命令,并可以取消所有订阅使用命令 PSUBSCRIBE。
    Redis 的发布订阅模式是基于消息的异步通信,消息的发布者和订阅者不需要知道对方的存在,通过共享的频道进行通信。发布订阅模式可用于实时广播、事件通知等场景。

Redis 的 Lua 脚本是什么?有什么作用?
Redis 的 Lua 脚本是一种在 Redis 服务器端执行的脚本语言,用于实现一些比较复杂的操作。可以通过 EVAL 和 EVALSHA 命令将 Lua 脚本传递给 Redis 服务器执行。
Lua 脚本在 Redis 服务器中运行,可以避免多个客户端同时访问 Redis 服务器时出现的并发问题,保证操作的原子性和一致性。Lua 脚本还可以利用 Redis 提供的数据结构和命令,以简单的方式实现一些数据的处理和操作,提高 Redis 的应用开发效率。
Lua 脚本与 Redis 的命令一样,也支持事务和数据监控功能,可以用于实现一些比较复杂的业务逻辑和高性能计算。

Redis 的主从复制是什么?有何作用?
Redis 的主从复制是指将一个 Redis 实例(即主节点)的所有数据复制到其他 Redis 实例(即从节点)的过程。主从复制可以实现数据的备份、高可用和负载均衡等功能。Redis 主从复制分为同步和异步复制两种方式。

  • 同步复制:主节点将数据同步发送给从节点,只有在从节点完全复制主节点的所有数据后才能继续执行写操作。同步复制可以保持多个节点数据的一致性,但在复制时会对主节点产生一定的性能影响。
  • 异步复制:主节点将数据异步地发送给从节点,不需要等待从节点完全复制数据即可继续执行写操作。异步复制性能更高,但在从节点复制数据时可能会出现数据不一致的情况。
    主从复制可以通过配置文件或命令行配置实现。Redis 主从复制可以实现数据的备份和读写分离,提高 Redis 的可用性和性能。
    Redis 的RDB和AOF持久化机制有什么优缺点?
    RDB持久化机制的优点包括:
  • RDB文件是紧凑和可压缩的,适合用作备份和灾难恢复。
  • RDB恢复速度比AOF快,因为只需要读取一次磁盘文件就可以还原数据。
  • 对于大规模迁移或复制数据集,RDB可以更容易地使用。
  • RDB产生的文件可以在不同的Redis版本之间兼容。
    RDB持久化机制的缺点包括:
    如果Redis关闭时发生故障,可能会丢失最后一次RDB快照之后的所有写操作。
  • RDB快照是通过fork子进程来生成的,如果数据集很大,fork可能会导致显著的延迟。
  • RDB恢复时需要加载整个数据集到内存中,可能会消耗大量的内存和时间。

AOF持久化机制的优点包括:

  • AOF日志记录了每个写操作的指令,可以保证数据的完整性。
  • AOF日志可以通过追加写的方式持久化,可靠性较高。
  • AOF日志可以选择不同的同步策略,根据需求平衡性能和数据安全性。
  • AOF日志是可读的,可以用于故障排查和分析数据库状态。

AOF持久化机制的缺点包括:

  • AOF文件通常比RDB文件大,占用更多的磁盘空间。
  • AOF恢复速度比RDB慢,需要重新执行文件中的所有指令。
  • 长时间运行的AOF文件可能会变得很大,导致效率下降。
  • AOF同步策略为always时,对性能有一定影响。
  • 考虑到数据安全性和可恢复性的需求,一般建议同时开启RDB和AOF持久化机制,这样可以在Redis重启时先使用AOF日志还原数据,如果AOF日志不存在,则使用RDB文件进行恢复。

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

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

相关文章

K8S Nginx Ingress Controller client_max_body_size 上传文件大小限制

现象 k8s集群中,上传图片时,大于1M就会报错 413 Request Entity Too Large Nginx Ingress Controller 的版本是 0.29.0 解决方案 1. 修改configmap kubectl edit configmap nginx-configuration -n ingress-nginx在 ConfigMap 的 data 字段中设置参数…

Zabbix监控系统及部署

目录 前言 一个完整的项目 业务架构 运维架构 优秀监控软件的好处 1.zabbix概述 zabbix是什么 zabbix监控原理 Zabbix6.0新特性 1.Zabbix server高可用防止硬件故障或计划维护期的停机 2.Zabbix6.0 LTS新增Kubernetes监控功能,可以在Kubernetes系统从多个…

JS中的File(一):Blob对象详解

一、定义 Blob是一个装着二进制数据的容器对象。Blob 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。 二、属性 size:只读属性,Blob中的字节数type&…

前端工程化相关

工具方法: 知道软件包名,拿到源码或者路径的方法 在浏览器输入以下内容,就可以找到你想要的。。。 unpkg.com/输入包名 一、模块化 ESM特性清单: 自动采取严格模式,忽略“use strict”每个ESM模块都是单独的私有作用…

nSum的java解法

两数之和 1. 两数之和 - 力扣(LeetCode) 可以使用哈希表的方法来解决 如果哈希表中不存在 target - a 这个元素,将这个元素值座位 key,下标作为 value 加入到哈希表中如果存在,返回两个元素的下标即可如果遍历到数组…

网络——华为与华三

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号:网络豆云计算学堂 座右铭:低头赶路,敬事如仪 个人主页: 网络豆的主页​​​​​ 写在前面 大家好,我是网络豆&#xff0…

Elasticsearch:是时候离开了! - 在 Elasticsearch 文档上使用 TTL

作者:来自 Elastic David Pilato 想象一下,圣诞老人必须向世界上所有的孩子们分发礼物。 他有很多工作要做,他需要保持高效。 他有一份所有孩子的名单,并且知道他们住在哪里。 他很可能会将礼物按区域分组,然后再交付。…

docker部署ng实现反向代理

场景 按规定尽可能减少开放到外网的端口,所以需要将多个服务部署到一个ip一个端口上。 方案 使用ng实现请求转发。根据http请求中的host与ng配置文件中的server_name匹配,转发到对应的机器上。 在docker上部署三个容器,每个容器中启动一个…

Java内存模型之可见性

文章目录 1.什么是可见性问题2.为什么会有可见性问题3.JMM的抽象:主内存和本地内存3.1 什么是主内存和本地内存3.2 主内存和本地内存的关系 4.Happens-Before原则4.1 什么是Happens-Before4.2 什么不是Happens-Before4.3 Happens-Before规则有哪些4.4 演示&#xff…

【SQL注入】SQLMAP v1.7.11.1 汉化版

下载链接 【SQL注入】SQLMAP v1.7.11.1 汉化版 简介 SQLMAP是一款开源的自动化SQL注入工具,用于扫描和利用Web应用程序中的SQL注入漏洞。它在安全测试领域被广泛应用,可用于检测和利用SQL注入漏洞,以验证应用程序的安全性。 SQL注入是一种…

调试(c语言)

前言: 我们在写程序的时候可能多多少少都会出现一些bug,使我们的程序不能正常运行,所以为了更快更好的找到并修复bug,使这些问题迎刃而解,学习好如何调试代码是每个学习编程的人所必备的技能。 1. 什么是bug&#xf…

UOS cryptsetup详细使用方法

1. 格式化为LUKS加密卷 格式化磁盘或分区为LUKS格式。这一步将清除所有现有数据,并设置一个新的加密密钥(密码)。 sudo cryptsetup luksFormat /dev/sdX其中 /dev/sdX 是要加密的磁盘或分区的路径。 2. 打开(解锁)加…

Java项目:06 Springboot的进销存管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 进销存管理系统 介绍 进销存系统是为了对企业生产经营中进货、出货、批发销售、付款等全程进行(从接获订单合同开 始,进入物料采购、入…

浅析Linux进程地址空间

前言 现代处理器基本都支持虚拟内存管理,在开启虚存管理时,程序只能访问到虚拟地址,处理器的内存管理单元(MMU)会自动完成虚拟地址到物理地址的转换。基于虚拟内存机制,操作系统可以为每个运行中的进程创建…

ros2+gazebo(ign)激光雷达+摄像头模拟

虽然ign不能模拟雷达,但是摄线头是可以模拟的。 好了现在都不用模拟了,ign摄线头也模拟不了。 ros2ign gazebo无法全部模拟摄线头和雷达。 只能有这样2个解决方法: 方法1:使用ros2 gazebo11 方案2:使用ros2买一个实…

一系列实用工具、编程工具和学习网站推荐

其他工具: 十分钟临时邮箱:https://www.linshi-email.com/Chrome极简插件:https://chrome.zzzmh.cn/#/indexPc桌面静态壁纸:https://ss.netnr.com/wallpaperProcessOn在线画图:https://www.processon.com/ 编程工具&a…

【问题探讨】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究

目录 主要内容 模型研究 结果一览 下载链接 主要内容 该模型以环境保护成本和运行成本为双目标构建了微电网优化调度模型,模型目标函数和约束条件复现文献《基于改进粒子群算法的微电网多目标优化调度》,程序的特点是采用非支配排序的蜣螂…

Redis缓存使用问题

数据一致性 只要使用到缓存,无论是本地内存做缓存还是使用 redis 做缓存,那么就会存在数据同步的问题。 以 Tomcat 向 MySQL 中写入和删改数据为例,来解释数据的增删改操作具体是如何进行的。 我们分析一下几种解决方案, 1、先更新缓存,再更新数据库 2、先更新数据库,…

2023年第十四届中国数据库技术大会(DTCC2023):核心内容与学习收获(附大会核心PPT下载)

随着信息化时代的深入发展,数据库技术作为支撑信息化应用的核心技术,其重要性日益凸显。本次大会以“数据价值,驱动未来”为主题,聚焦数据库领域的前沿技术与最新动态,吸引了数千名业界专家、企业代表和数据库技术爱好…

橘子学Spring01之spring的那些工厂和门面使用

一、Spring的工厂体系 我们先来说一下spring的工厂体系(也称之为容器),得益于大佬们对于单一职责模式的坚决贯彻,在十几年以来spring的发展路上,扩展出来大量的工厂类,每一个工厂类都承担着自己的功能(其实就是有对应的方法实现)…