Redis 面试/实战赛道|高收藏、高频面试、生产必备
Redis 是后端面试必问、必考、必用的中间件。很多人只会用 set、get,却说不清五大基本数据结构的底层和使用场景,面试非常吃亏!
今天用最通俗的大白话 + 实战场景,帮你彻底搞定 Redis 五大基本数据结构,新手也能看懂。
一、String 字符串(最常用)
底层结构:简单动态字符串 SDS
适用场景
- 普通缓存存储:用户信息、配置、文章详情
- 计数器:点赞数、浏览量、访问次数
- 分布式锁、全局唯一ID
常用命令:set、get、incr、decr、mset、mget
二、List 列表
底层结构:双向链表
特点:头尾操作极快,中间查询慢
适用场景
- 消息队列、任务队列
- 时间线、动态列表、最新消息列表
常用命令:lpush、rpush、lpop、rpop、lrange
三、Hash 哈希
底层结构:压缩列表 + 哈希表
适用场景
适合存储 对象结构化数据,比 String 序列化更省空间、更灵活。
- 用户信息缓存:昵称、头像、性别、年龄
- 商品信息、配置信息
常用命令:hset、hget、hgetall、hmset
四、Set 集合
特点:无序、自动去重、支持集合运算
适用场景
- 点赞、收藏、关注、粉丝(去重)
- 共同好友、共同关注、交集差集运算
- 抽奖、随机抽取用户
常用命令:sadd、smembers、sismember、sinter、sdiff
五、ZSet 有序集合(重点!面试高频)
特点:去重 + 自动排序,带score分值
适用场景
- 排行榜:热度榜、积分榜、销量榜
- 延时任务、权重排序
常用命令:zadd、zrange、zrevrange、zscore
六、面试高频总结(直接背)
- String:缓存、计数器、分布式锁
- List:消息队列、时间线
- Hash:结构化对象缓存
- Set:去重、好友关系、随机
- ZSet:各种排行榜、有序场景
七、结尾
Redis 所有高级功能:过期淘汰、缓存穿透/击穿/雪崩、分布式锁、持久化我后面会逐一更新!
喜欢可以点赞收藏,持续更新后端面试干货!
