redis面试中常被问到的重点有哪些

发布时间:2022-02-14 13:36:01 作者:iii
来源:亿速云 阅读:139
# Redis面试中常被问到的重点有哪些

Redis作为高性能的键值存储系统,在面试中经常被深入考察。以下是Redis面试中的核心知识点整理,涵盖基础概念、数据结构、持久化机制、高可用方案等关键内容。

---

## 一、Redis基础概念

### 1. Redis是什么?
- **内存数据库**:数据主要存储在内存中,读写性能极高(10万+ QPS)
- **键值存储**:支持多种数据结构(String/Hash/List/Set/ZSet等)
- **单线程模型**:基于Reactor模式的事件驱动架构(6.0后支持多线程IO)

### 2. Redis vs Memcached
| 特性          | Redis                          | Memcached              |
|---------------|--------------------------------|------------------------|
| 数据类型       | 5种核心+扩展类型               | 仅字符串               |
| 持久化         | 支持RDB/AOF                   | 不支持                 |
| 集群模式       | Redis Cluster/Codis           | 需客户端分片           |
| 线程模型       | 单线程(IO多线程可选)         | 多线程                 |

---

## 二、核心数据结构与使用场景

### 1. String(字符串)
- **底层实现**:SDS(Simple Dynamic String)
- **典型场景**:
  - 缓存(用户会话、页面缓存)
  - 计数器(`INCR article:readcount:1001`)
  - 分布式锁(`SETNX lock:order 1 EX 30`)

### 2. Hash(哈希表)
- **底层结构**:ziplist(元素少时)/ hashtable
- **使用示例**:
  ```bash
  HSET user:1001 name "张三" age 28
  HGETALL user:1001

3. List(列表)

4. Set(集合)

5. Sorted Set(有序集合)


三、持久化机制

1. RDB(快照)

2. AOF(追加日志)

3. 混合持久化(Redis 4.0+)


四、高可用架构

1. 主从复制

2. Sentinel(哨兵)

3. Redis Cluster


五、性能优化

1. 内存管理

2. 管道(Pipeline)

# Python示例
pipe = r.pipeline()
for i in range(1000):
    pipe.set(f"key:{i}", i)
pipe.execute()

3. 慢查询分析


六、事务与Lua脚本

1. 事务特性

2. Lua脚本


七、缓存问题解决方案

1. 缓存穿透

2. 缓存雪崩

3. 缓存击穿


八、生产环境实践

1. 监控指标

2. 安全配置

3. 版本选择


九、高频面试题示例

  1. Redis为什么快?

    • 内存操作
    • IO多路复用
    • 单线程避免锁竞争
  2. 如何实现分布式锁?

    • SETNX + EXPIRE(Redlock算法)
    • 对比Zookeeper/Etcd方案
  3. BigKey如何处理?

    • 拆分(HSCAN分批删除)
    • 使用Lazy Free(UNLINK
  4. 集群数据如何迁移?

    • MIGRATE命令
    • 第三方工具(redis-shake)

掌握以上知识点后,建议通过以下方式深化理解: 1. 动手搭建Redis集群环境 2. 使用redis-benchmark进行压测 3. 阅读Redis核心源码(如dict.c/ae.c) “`

推荐阅读:
  1. 网络运维 面试官会问到的问题有哪些?
  2. 面试中经常被问到的 Redis 持久化与恢复

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

redis

上一篇:jQuery的前端面试题有哪些

下一篇:php如何去掉金额千分位

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》