排序
面试题:Redis 事务与关系型数据库事务的主要区别是什么?
Redis 事务和关系型数据库事务(如 MySQL、PostgreSQL 等)在设计和实现上有显著的区别。以下是它们的主要区别: 1. 事务的原子性 Redis 事务: Redis 的事务是通过 MULTI、EXEC、DISCARD...
面试题:Redis 的哨兵机制是什么?
Redis 的哨兵机制(Sentinel)是 Redis 高可用性(High Availability, HA)解决方案的核心组件之一。它的主要作用是监控 Redis 主从集群的状态,并在主节点(Master)发生故障时,自动进行故障...
面试题:如何在 Redis 中实现队列和栈数据结构?
在 Redis 中实现队列和栈数据结构可以通过使用 Redis 的列表(List)数据结构来实现。Redis 的列表是一个双向链表,支持在头部和尾部进行插入和删除操作,因此非常适合用来实现队列和栈。 1. 实...
面试题:Redis 在生成 RDB 文件时如何处理请求?
在 Redis 生成 RDB 文件(即执行持久化操作)时,Redis 会使用 写时复制(Copy-On-Write, COW) 机制来处理客户端的请求,从而保证数据的一致性和服务的可用性。以下是详细的处理过程...
面试题:Redis 中常见的数据类型有哪些?
Redis 支持多种数据类型,每种数据类型都有其特定的使用场景和操作命令。以下是 Redis 中常见的数据类型及其特点: 1. 字符串(String) 描述:字符串是 Redis 最基本的数据类型,可以存储...
面试题:为什么 Redis 设计为单线程?6.0 版本为何引入多线程?
Redis 的设计选择单线程模型是为了简化实现、提高性能,并避免多线程带来的复杂性。然而,随着硬件的发展和业务需求的变化,Redis 6.0 引入了多线程模型以进一步提升性能。以下是详细的分析: 1...
面试题:Redis 中的 Big Key 问题是什么?如何解决?
Big Key 问题 是指 Redis 中某些 key 对应的 value 过大,导致 Redis 性能下降、内存占用过高,甚至引发系统故障。Big Key 通常表现为以下几种形式: 字符串类型:value 过大(如超过 10KB...
面试题:Redis 集群的实现原理是什么?
Redis 集群(Redis Cluster) 是 Redis 提供的分布式解决方案,用于将数据分布在多个节点上,实现高可用性和横向扩展。以下是 Redis 集群的实现原理和核心机制: 1. Redis 集群的核心...
面试题:Redis 中 EMBSTR 对象的阈值设置为何为 44?其调整历史是什么?
在 Redis 中,EMBSTR(Embedded String)是一种特殊的内存优化编码方式,用于存储较短的字符串。它的设计目的是减少内存分配和碎片化,同时提高性能。EMBSTR 的阈值设置为 44 字节,...
面试题:Redis 的 ListPack 数据结构是什么?
ListPack 是 Redis 5.0 引入的一种紧凑的、高效的数据结构,用于替代 ziplist 在某些场景下的使用。它的设计目标是进一步优化内存使用和性能,特别是在存储小规模列表、哈希表等...