Lang:简体中文

redis面试题大全

日期:2025-09-08 / 来源:面试宝典

涵盖基础、应用、性能等多方面面试题

redis作为一款高性能的键值对存储数据库,在面试中是常考内容。以下为大家整理了常见的redis面试题。

redis基础概念

首先可能会被问到redis是什么。redis是一个开源的使用ansi c语言编写、支持网络、可基于内存也可持久化的日志型、key - value数据库。例如在电商系统中,可用于缓存商品信息,提高访问速度。接着可能问redis支持的数据类型,有字符串(string)、哈希(hash)、列表(list)、集合(set)、有序集合(zset)。像在社交平台中,用集合存储用户的好友列表。

redis持久化机制

关于redis的持久化,主要有rdb和aof两种。rdb是在某个时间点将数据快照存储到磁盘,优点是文件紧凑,恢复速度快;缺点是可能会丢失最后一次快照后的所有修改。例如在游戏服务器中,可在每天凌晨进行rdb快照。aof是将redis执行的所有写命令记录下来,优点是数据安全性高,可配置不同的同步策略;缺点是文件体积大,恢复速度慢。比如在金融系统中,为保证数据完整性,可采用aof持久化。

redis缓存问题

缓存穿透是指查询一个不存在的数据,导致请求直接打到数据库。可使用布隆过滤器来解决,例如在防止爬虫访问不存在页面时就可使用。缓存雪崩是指大量缓存同时失效,导致大量请求直接访问数据库。可以对缓存的过期时间设置随机值来避免,如电商大促活动时,对商品缓存设置不同过期时间。缓存击穿是指某个热点数据过期,大量请求直接访问数据库。可采用加锁的方式,像在抢购热门商品时,对该商品的缓存加锁。

redis集群架构

redis集群方案有主从复制、哨兵模式和cluster集群。主从复制即一个主节点,多个从节点,主节点负责写操作,从节点负责读操作,提高了读性能。如新闻网站中,可采用主从复制,主节点更新新闻,从节点提供新闻的读取。哨兵模式在主从复制基础上,增加了哨兵节点,用于监控主节点状态,当主节点故障时,自动进行故障转移。cluster集群是redis官方提供的分布式解决方案,可实现数据的分片存储,提高系统的可扩展性和容错性,适用于大型分布式系统。

redis性能优化

在性能优化方面,可合理设置内存淘汰策略,如当内存不足时,采用volatile - lru策略,优先淘汰最近最少使用的缓存数据。还可使用连接池,减少频繁创建和销毁连接的开销,例如在高并发的web应用中使用连接池。另外,对大key进行拆分,避免单个key存储过多数据,提高读写效率,像在存储用户信息时,可按用户id范围拆分存储。

以下为推荐内容

微信二维码