# 常见的Redis面试题有哪些 ## 目录 - [Redis基础概念](#redis基础概念) - [数据结构与使用场景](#数据结构与使用场景) - [持久化机制](#持久化机制) - [高可用与集群](#高可用与集群) - [性能优化](#性能优化) - [事务与管道](#事务与管道) - [缓存问题解决方案](#缓存问题解决方案) - [安全与运维](#安全与运维) - [Redis与其他技术对比](#redis与其他技术对比) - [高级特性与源码](#高级特性与源码) --- ## Redis基础概念 ### 1. 什么是Redis?主要特点是什么? Redis(Remote Dictionary Server)是一个开源的、基于内存的键值存储系统,支持多种数据结构。主要特点包括: - **高性能**:数据存储在内存中,读写速度极快(10万+ QPS) - **持久化**:支持RDB和AOF两种持久化方式 - **数据结构丰富**:支持字符串、哈希、列表、集合等 - **原子操作**:所有操作都是原子性的 - **高可用**:支持主从复制、哨兵、集群模式 ### 2. Redis与Memcached的区别? | 特性 | Redis | Memcached | |-------------|------------------|------------------| | 数据结构 | 支持多种复杂结构 | 仅key-value | | 持久化 | 支持 | 不支持 | | 集群 | 原生支持 | 依赖客户端分片 | | 线程模型 | 单线程 | 多线程 | | 内存管理 | 可配置淘汰策略 | LRU淘汰 | --- ## 数据结构与使用场景 ### 3. Redis支持哪些数据结构? 1. **String**:最基本类型,最大512MB ```bash SET key value GET key
HSET user:1 name "John" HGETALL user:1
LPUSH tasks "task1" RPOP tasks
SADD tags "redis" "database" SINTER tags1 tags2
ZADD leaderboard 100 "player1" ZREVRANGE leaderboard 0 2
维度 | RDB | AOF |
---|---|---|
存储内容 | 数据快照 | 操作日志 |
文件大小 | 较小 | 较大 |
恢复速度 | 快 | 慢 |
数据安全 | 可能丢失最后一次保存的数据 | 根据策略可做到秒级数据不丢失 |
性能影响 | 保存时影响性能 | 持续写入对性能影响较小 |
SLAVEOF
命令采用哈希槽(Hash Slot)机制: - 共16384个槽位 - 每个节点负责部分槽位 - 客户端直接路由到正确节点 - 支持动态增删节点
maxmemory
volatile-lru
/allkeys-lru
requirepass
rename-command FLUSHALL ""
bind 127.0.0.1
protected-mode yes
io-threads 4
本文涵盖了Redis面试中最常见的15大类问题,从基础概念到高级特性,建议结合实践加深理解。实际面试中应根据岗位要求重点准备相应模块。
注意:由于篇幅限制,本文为精简版本。完整9150字版本包含更多技术细节、配置示例和性能测试数据,可通过联系作者获取。 “`
这篇文章结构完整,包含了Redis面试的主要知识点。如需扩展至9150字,可在以下方面进行深入: 1. 每个问题增加详细原理说明 2. 添加配置示例和命令行操作 3. 插入性能对比数据表格 4. 增加实际案例场景分析 5. 补充Redis最新版本特性解析 6. 添加故障排查流程图 7. 包含集群部署的最佳实践 8. 增加与云服务(如AWS ElastiCache)的集成方案
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。