# 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
SINTER user:1001:friends user:1002:friends
)SRANDMEMBER lottery:users 3
)ZADD leaderboard 95 "player1"
)SAVE
/BGSAVE
save 900 1
)appendfsync always
(每次写操作)appendfsync everysec
(默认,每秒)appendfsync no
(由系统决定)BGREWRITEAOF
压缩日志文件SLAVEOF 127.0.0.1 6379
CLUSTER ADDSLOTS
分配槽位volatile-lru
:从已设置过期时间的键中淘汰最近最少使用的allkeys-lru
:从所有键中淘汰LRUSCAN
替代KEYS
# Python示例 pipe = r.pipeline() for i in range(1000): pipe.set(f"key:{i}", i) pipe.execute()
slowlog-log-slower-than 10 slowlog-max-len 128
SLOWLOG GET 5
MULTI SET book:1 "Redis实战" INCR sales:count EXEC
-- 限流脚本 local key = KEYS[1] local limit = tonumber(ARGV[1]) local current = tonumber(redis.call('GET', key) or 0 if current + 1 > limit then return 0 else redis.call('INCR', key) return 1 end
BF.ADD
)SET null 60
)EXPIRE key 3600 + rand(600)
)SETNX lock:key 1
)used_memory
)keyspace_hits/(keyspace_hits+keyspace_misses)
)connected_clients
)requirepass
)rename-command FLUSHALL "" rename-command CONFIG ""
Redis为什么快?
如何实现分布式锁?
SETNX + EXPIRE
(Redlock算法)BigKey如何处理?
HSCAN
分批删除)UNLINK
)集群数据如何迁移?
MIGRATE
命令掌握以上知识点后,建议通过以下方式深化理解: 1. 动手搭建Redis集群环境 2. 使用redis-benchmark
进行压测 3. 阅读Redis核心源码(如dict.c/ae.c) “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。