Redis口试宝典【刷题系列】

[复制链接]
发表于 2025-10-26 14:41:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×


一、什么是Redis?

解答:
Redis是一个高性能的 Key-Value 内存数据库,支持多种数据范比方 String、List、Set、Sorted Set 和 Hash。它通过将数据存储在内存中来实现快速读写,并通过异步方式将数据长期化到硬盘。Redis 的上风在于其精彩的性能和丰富的数据布局支持,但也存在物理内存容量限定的标题。
二、Redis相比Memcached有哪些上风?

解答:
Redis 相比 Memcached 具有以下上风:


  • 支持更丰富的数据范例。
  • 读写速率更快。
  • 提供数据长期化功能。
三、Redis支持的数据范例有哪些?

解答:
Redis 支持的数据范例包罗:


  • String(字符串)
  • List(列表)
  • Set(聚集)
  • Sorted Set(有序聚集)
  • Hash(哈希)
四、Redis的紧张斲丧的物理资源是什么?

解答:
Redis 紧张斲丧的物理资源是内存。
五、Redis的全称是什么?

解答:
Redis 的全称是 Remote Dictionary Server 。
六、Redis有哪些数据镌汰计谋?

解答:
Redis 的数据镌汰计谋包罗:


  • noeviction:到达内存限定时返回错误。
  • volatile-lru:删除近来最少使用的设置了逾期时间的 key。
  • allkeys-lru:删除全部近来最少使用的 key。
  • volatile-lfu:删除使用频率最低的设置了逾期时间的 key。
  • allkeys-lfu:删除全部使用频率最低的 key。
  • volatile-random:随机删除设置了逾期时间的 key。
  • allkeys-random:随机删除全部 key。
  • volatile-ttl:根据逾期时间镌汰 key。
七、为什么Redis须要把全部数据放到内存中?

解答:
Redis 须要把全部数据放到内存中是为了到达最快的读写速率。假如不将数据放在内存中,磁盘 I/O 速率会严峻影响 Redis 的性能。
八、Redis集群方案有哪些?

解答:
Redis 集群方案包罗:


  • Codis,支持节点数量改变时数据可规复。
  • Redis Cluster,使用 hash 槽的概念举行数据分片。
    业务代码层实现,通过 key 的 hash 值分配到差别的 Redis 实例。
九、Redis集群方案什么情况下会导致整个集群不可用?

解答:
当集群中的节点失败,且该节点负责的 hash 槽没有有用的复制品时,大概导致整个集群不可用。
十、一个字符串范例的值能存储最大容量是多少?

解答:
一个字符串范例的值在 Redis 中能存储的最大容量是 512M 。
十一、Redis官方为什么不提供Windows版本?

解答:
由于 Linux 版本已经相当稳固,而且用户量很大,开辟 Windows 版本大概会带来兼容性等标题。
十二、Redis有哪些恰当的场景?

解答:
恰当使用 Redis 的场景包罗会话缓存、全页缓存、消息队列、排行榜/计数器和发布/订阅体系等。
十三、Redis支持的Java客户端都有哪些?官方保举用哪个?

解答:
Redis 支持的 Java 客户端包罗Jedis、Redisson、Lettuce等,官方保举使用Redisson 。
十四、Jedis与Redisson对比有什么优缺点?

解答:
Jedis 是功能较为全面的 Redis 客户端,而 Redisson 提供了分布式和可扩展的Java 数据布局,但不支持字符串利用和一些 Redis 特性如排序、事件、管道等。
十五、Redis怎样设置暗码及验证暗码?

解答:
设置暗码使用下令 config set requirepass 暗码,验证暗码使用下令 auth 暗码。
十六、说说Redis哈希槽的概念?

解答:
Redis 集群使用 16384 个哈希槽来分布数据,每个 key 通过 CRC16 校验后对16384 取模决定放置哪个槽。
十七、Redis集群的主从复制模子是怎样的?

解答:
Redis 集群使用主从复制模子来包管数据的高可用性,每个主节点都会有 N-1 个从节点复制其数据。
十八、Redis集群会有写利用丢失吗?为什么?

解答:
Redis 集群大概会在特定条件下丢失写利用,由于其复制机制是异步的,并不能包管数据的强划一性。
十九、Redis事件相干的下令有哪些几个?

解答:
Redis 事件相干的下令包罗 MULTI、EXEC、DISCARD 和 WATCH。
二十、Redis key的逾期时间和永世有用分别怎么设置?

解答:
设置 key 的逾期时间使用 EXPIRE 下令,永世有用可以通过设置逾期时间为 0 来实现。
二十一、Redis怎样做内存优化?

解答:
内存优化可以通过公道使用数据布局、设置公道的逾期时间、使用内存镌汰计谋等方法来实现。
二十二、Redis采取历程怎样工作的?

解答:
Redis 的采取历程通过监控监控内存使用情况,并在内存到达设置的限定时,根据设定的镌汰计谋举行数据采取。
二十三、Redis常见的性能标题有哪些?怎样办理?

解答:
Redis 的常见性能标题包罗内存不敷、主从复制耽误、长期化利用壅闭等。办理方法包罗优化数据布局、使用更高效的镌汰计谋、公道设置长期化计谋等。
二十四、Memcache与Redis的区别都有哪些?

解答:
Memcache 与 Redis 的区别包罗数据存储方式、支持的数据范例、长期化本领、数据容量限定和底层实现等方面。
二十五、Redis的长期化是什么?

解答:
Redis 的长期化机制包罗 RDB(快照)和 AOF(追加文件)两种方式,用于数据的备份和灾难规复。
二十六、RDB的优缺点?

解答:
RDB 的长处包罗文件紧凑、恰当备份和灾难规复、最大化 Redis 性能、规复速率快。缺点是大概会丢失数据,生存过程大概会壅闭主线程。
二十七、AOF的优缺点?

解答:
AOF 的长处是长期性更好,可以设置差别的 fsync 计谋来均衡性能和数据安全性。缺点是文件体积大概较大,写入速率大概慢于 RDB,且存在潜伏的 bug。
三十、简朴说说缓存雪崩及办理方法

解答:
缓存雪崩是指大量缓存同时逾期,导致数据库压力剧增。办理方法包罗设置差别的逾期时间、使用互斥锁或队列控制并发哀求等。
三十一、缓存穿透怎么导致的?

解答:
缓存穿透通常是由于查询不存在的数据项,导致哀求直接访问数据库。办理方法包罗缓存空值、使用布隆过滤器等。
三十二、遇到缓存划一性标题,你怎么办理的?

解答:
办理缓存划一性标题可以采取延时双删计谋、使用消息队列和数据库的 binlog 日志日志同步等方法。
三十三、为什么要用 Redis 而倒霉用 map/guava 做缓存?

解答:
使用 Redis 作为缓存而不是map/guava的缘故原由在于Redis提供了分布式缓存的本领,支持数据长期化,且具有更高的性能和扩展性。
三十四、Redis长期化数据和缓存怎么做扩容?

解答:
Redis 扩容可以通过使用划一性哈希实现动态扩容缩容,大概在长期化存储情况下使用固定的 keys-to-nodes 映射关系。
三十五、Redis的内存镌汰计谋有哪些?

解答:
Redis 的内存镌汰计谋包罗noeviction、allkeys-lru、allkeys-random、volatile-lru、volatile-random 和 volatile-ttl等。
三十六、简朴形貌下Redis线程模子

解答:
Redis 是基于 Reactor 模式的单线程模子,使用文件变乱处置处罚器来处置处罚网络变乱,通过 I/O 多路复用技能来监听多个套接字。
三十七、Redis事件其他实现方式?

解答:
除了 MULTI/EXEC 事件,Redis 事件还可以通过 Lua 脚本包管下令的原子性实验,或使用中心标记变量来实现事件。
三十八、生产情况中的 redis 是怎么摆设的?

解答:
生产情况中的 Redis 摆设大概包罗使用多台呆板摆设主从实例、设置富足的内存和 CPU 资源、实验故障转移和主动故障规复机制等。
三十九、怎样办理 Redis 的并发竞争 Key 标题?

解答:
办理 Redis 并发竞争 Key 标题可以采取分布式锁,如基于 Zookeeper 或 Redis 实现的 Redlock 算法。
四十、什么是 RedLock?

解答:
RedLock 是 Redis 官方提出的基于 Redis 实现分布式锁的算法,提供了互斥访问、制止死锁和高容错性的特性。
四十一、什么时间须要缓存降级?

解答:
当访问量剧增或服务出现标题时,为了包管核心折务可用,纵然是有损服务,也须要举行缓存降级。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表