Redis面试题10

Redis 支持哪些数据结构?

Redis 支持以下几种常用的数据结构:

字符串(String):用于存储字符串值,可以是文本或二进制数据。

列表(List):用于存储一个有序的字符串列表,可以在列表的两端进行插入、删除和查看操作。

哈希(Hash):用于存储键值对的无序散列表,可以对单个键进行增删改查操作。

集合(Set):用于存储多个无序且唯一的字符串值,支持集合间的交集、并集、差集等操作。

有序集合(Sorted Set):用于存储多个成员与其对应的分数值的有序集合,可以根据分数值进行排序和范围查询操作。

地理空间索引(Geospatial Index):用于存储地理位置信息的索引,支持根据位置进行范围查询和距离计算等操作。

Redis 的持久化机制有哪些?它们有什么区别?

Redis 支持两种持久化机制:

RDB(Redis Database)持久化:将 Redis 在内存中的数据定期快照存储到磁盘上的一个二进制文件中。RDB 持久化能够生成一个压缩的、二进制的快照文件,适用于不需要实时数据的场景,如数据备份、灾备等。

AOF(Append Only File)持久化:将 Redis 的写操作以追加的方式写入到一个文件中。AOF 持久化通过保存 Redis 执行的写操作来重新构建数据集,以实现数据的恢复。AOF 持久化方式以日志的形式记录 Redis 数据库的操作,文件体积相对较大,但是可以保证更高的数据安全性和更精确的数据恢复。

区别:

RDB 持久化更适合快速备份和灾备,且对于大规模数据集来说,RDB 的恢复速度更快;

AOF 持久化更适合保证数据的高可靠性和实时性,但相对来说对于恢复数据的速度要慢一些。

Redis 的缓存淘汰策略有哪些?

Redis 提供了多种缓存淘汰策略,用于在内存不足时删除部分数据,以保证新的数据能够继续被缓存:

  • LRU(Least Recently Used):淘汰最近最久未使用的数据;
  • LFU(Least Frequently Used):淘汰使用次数最少的数据;
  • FIFO(First In, First Out):淘汰最先进入缓存的数据;
  • Random(随机策略):随机选择数据进行淘汰。
    用户可以根据业务需求选择适合的淘汰策略,如对于访问频率较高的热点数据,可选择 LRU 或 LFU 策略;对于数据访问较为平均,不需要特别关注访问顺序的场景,可选择 FIFO 策略;而随机策略则适用于一些特殊场景。另外,Redis 还提供了手动删除数据的命令,用户可以根据具体情况进行主动删除操作。
    继续
    Redis 的哨兵是什么?它的作用是什么?
    Redis 哨兵是 Redis 的一种特殊模式,用于监控和管理 Redis 的高可用性。
    哨兵的主要作用包括:
  • 监控:哨兵会定期向 Redis 主节点和从节点发送心跳检查,以确保节点的可用性。
  • 自动故障转移:当主节点发生故障时,哨兵可以自动将某个从节点提升为主节点,实现故障转移。
  • 高可用性保证:因为哨兵可以自动进行故障转移,所以可以保证 Redis 服务的高可用性,即使主节点发生故障,系统仍然可以正常运作。
  • 配置中心:哨兵可以作为配置中心,为客户端提供 Redis 服务的监控信息和配置参数。
    使用 Redis 哨兵可以提供 Redis 服务的高可用性,以及自动化的故障转移和主节点切换。在生产环境中,经常使用哨兵模式来构建 Redis 高可用集群,保证业务的稳定性和可用性。

Redis 集群是什么?它的特点是什么?

Redis 集群是多个 Redis 节点的集合,通过分片(Sharding)的方式将数据分布在不同的节点上进行存储和访问。

Redis 集群的特点包括:

  • 分布式存储:Redis 集群将数据分布在多个节点上进行存储,实现数据的分布式存储和访问。
  • 自动分片:Redis 集群会根据数据的 key 进行哈希计算,将数据分散在不同的节点上,实现数据的自动分片。
  • 高可用性和扩展性:Redis 集群支持主从复制和故障转移,通过复制和自动切换主节点可以实现高可用性和扩展性。
  • 节点间通信:Redis 集群中的节点通过 gossip 协议进行相互通信,完成状态同步和故障检测等操作。
    使用 Redis 集群可以实现数据的分布式存储和访问,提高系统的性能和扩展性。Redis 集群适用于需要存储大量数据,并且需要高可用性和可扩展性的场景,如互联网应用的会话存储、缓存等。
相关推荐
九皇叔叔2 小时前
【第二章】Redis基础入门:Redis是什么、为什么快以及核心特性详解
数据库·redis·缓存
云和恩墨2 小时前
删库不跑路,回滚极速触达——zData S“旁路日志”持续保护原理深剖
数据库
MetaLite3 小时前
SpringBoot接口分层规范-外网网关内部服务与参数边界
java·数据库·spring boot
Wang's Blog4 小时前
Java框架快速入门: Spring Security+OAuth2之元注解简化权限表达式
java·数据库·spring
蓝速科技6 小时前
医院导诊 AI 数字人一体机场景适配与落地指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理·技术分享
QYR-分析6 小时前
重轨受电弓行业深度报告:市场格局、技术迭代与发展前景
大数据·数据库·人工智能
泡泡鱼(敲代码中)7 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
l1t8 小时前
DeepSeek总结的chdb-core v26.7.3发版说明
数据库·clickhouse·oracle
冰暮流星8 小时前
mysql之表子查询
数据库·mysql
Full Stack Developme9 小时前
CRM相关库表设计
数据库