
一、Redis 五大数据结构数据结构特点企业场景String字符串最常用缓存、Token、验证码Hash键值对集合用户信息、商品信息List有序列表可重复消息队列、聊天记录Set无序集合不重复点赞、标签、好友关系ZSetSorted Set有序集合可排序排行榜、积分榜、热搜榜企业中80% 左右的场景都是 String 和 Hash。二、String字符串⭐⭐⭐⭐⭐特点最基本的数据类型一个 Key 对应一个 ValueValue 可以是字符串、数字、JSON 等例如user:name → Tom count → 100 token:1 → xxxxx常用命令设置SET name Tom获取GET name删除DEL name设置过期时间SET token abc EX 3600数字自增INCR count数字自减DECR count企业应用Token验证码商品缓存文章内容缓存访问计数三、Hash哈希⭐⭐⭐⭐⭐特点一个 Key 对应多个字段。例如user:1 username → Tom age → 20 email → tomtest.com不像 String 保存整个 JSON而是可以单独修改某个字段。常用命令新增字段HSET user:1 username Tom获取字段HGET user:1 username获取所有字段HGETALL user:1删除字段HDEL user:1 age企业应用用户信息商品信息系统配置四、List列表⭐⭐⭐⭐特点有序可重复两端都可以插入和删除例如A B C常用命令左侧插入LPUSH msg hello右侧插入RPUSH msg world左侧取出LPOP msg右侧取出RPOP msg查看全部LRANGE msg 0 -1企业应用消息队列简单聊天记录最近浏览记录五、Set集合⭐⭐⭐⭐⭐特点无序元素唯一自动去重例如Tom Jack Lucy如果再次添加Tom不会重复。常用命令添加SADD like:1 user1查看SMEMBERS like:1判断是否存在SISMEMBER like:1 user1删除SREM like:1 user1统计数量SCARD like:1企业应用点赞收藏标签好友关系六、ZSetSorted Set⭐⭐⭐⭐⭐特点元素唯一自动排序每个元素都有一个分数Score例如Tom 100 Jack 95 Lucy 80Redis 会自动按 Score 排序。常用命令添加ZADD rank 100 Tom查看排行榜ZRANGE rank 0 -1倒序查看ZREVRANGE rank 0 -1增加分数ZINCRBY rank 10 Tom查看排名ZREVRANK rank Tom企业应用游戏排行榜销量排行榜热搜榜积分榜七、如何选择数据结构需求推荐数据结构一个值String一个对象Hash有顺序列表List去重集合Set排序集合ZSet八、企业案例用户信息user:1推荐HashTokentoken:123456推荐String商品排行榜product:rank推荐ZSet文章点赞用户article:1:like推荐Set最新消息message:list推荐List九、本章总结数据结构是否有序是否可重复典型场景String×√缓存、TokenHash×字段唯一用户信息List√√消息队列、聊天Set××点赞、标签ZSet√按 Score×排行榜本章一句话总结Redis 的核心不是命令而是根据业务场景选择合适的数据结构。思考题精简回答即可为什么用户信息更适合使用Hash而不是一个 JSON 字符串StringHash 可以单独修改某个字段例如只修改age不用重新保存整个对象。JSON String 每次修改一个字段都需要读取整个 JSON再重新写入List 和 Set 都能存多个元素它们最大的区别是什么List:有序、允许重复Set:无序、不允许重复为什么点赞功能通常使用Set而不是 List因为点赞要求同一个用户只能点赞一次、自动去重Set 可以保证唯一性。排行榜为什么必须使用ZSet而不是 Set因为排行榜需要元素唯一、根据分数排序Set只能存数据不能记录排名Token、验证码为什么通常使用String因为 Token 和验证码通常是一个 Key 对应一个值。如果要实现最近浏览商品记录你会选择哪种数据结构为什么使用List。原因最近浏览需要保持浏览顺序、新浏览商品放前面、可以限制数量