Redis基础day01 📅 2026/7/8 2:59:59 Redis 学习笔记1. 核心特征键值型以 Key-Value 形式存储单线程命令执行是单线程的但持久化等有后台线程基于内存低延迟速度快数据持久化支持 RDB 和 AOF集群架构支持主从集群、分片集群多语言客户端支持主流开发语言2. 基本数据结构类型类型示例备注Stringhello world基础字符串/整数/浮点数Hash{name: Jack, age: 21}类似 Map/字典List[A - B - C - D]双向链表有序可重复Set{A, B, C}无序元素唯一SortedSet{A:1, B:2, C:3}可排序元素唯一带 score 属性3. 通用命令KEYS pattern查看匹配的 key生产环境禁用会阻塞DEL key删除指定 keyEXISTS key判断 key 是否存在EXPIRE key seconds设置 key 的过期时间自动删除TTL key查看 key 的剩余有效期-1 永久-2 已过期提示可使用help [command]查看具体命令用法4. Key 的设计规范采用层级结构设计通过冒号分隔项目名:业务名:类型:id例如students:user:15. String 类型详解常见命令命令作用SET key value添加或修改键值对GET key获取 String 类型的 valueMSET key1 value1 key2 value2批量添加MGET key1 key2批量获取INCR key整型值自增 1INCRBY key increment整型值自增指定步长INCRBYFLOAT key increment浮点型值自增SETNX key value不存在时才添加分布式锁常用SETEX key seconds value添加并指定有效期String 存储对象的不足用 String 存对象常用JSON 序列化如{name:Jack, age:21}但修改对象中某个字段时很不方便需整个替换。6. Hash 类型详解特征无序字典类似 Java 的HashMap。可以将对象中的每个字段独立存储支持对单个字段做 CRUD。常见命令HSET key field value添加/修改 hash 中的字段HGET key field获取 hash 中的字段值HMSET key field1 value1 field2 value2批量添加字段HMGET key field1 field2批量获取字段值HGETALL key获取所有字段和值HDEL key field删除指定字段HINCRBY key field increment指定字段自增7. List 类型详解特征类似 Java 的LinkedList双向链表。有序、元素可重复、插入和删除快、查询一般。使用场景朋友圈点赞列表、评论列表等。常见命令LPUSH key element ...向列表左侧插入一个或多个元素LPOP key移除并返回列表左侧第一个元素无则返回 nilRPUSH key element ...向列表右侧插入一个或多个元素RPOP key移除并返回列表右侧第一个元素LRANGE key start end返回指定范围内的元素支持负数索引BLPOP / BRPOP key timeout阻塞式弹出无元素时等待指定时间而非直接返回 nil8. Set 类型详解特征类似 Java 的HashSetValue 为 null 的 HashMap。无序、元素不可重复、查找快天然支持交集、并集、差集。使用场景社交软件的共同好友、标签计算。常见命令SADD key member ...向集合中添加一个或多个元素SREM key member ...移除集合中的指定元素SCARD key返回集合中元素的个数SISMEMBER key member判断元素是否存在于集合中SMEMBERS key获取集合中所有元素SINTER key1 key2 ...求多个集合的交集SDIFF key1 key2 ...求集合的差集key1 - key2SUNION key1 key2 ...求多个集合的并集9. SortedSet 类型详解特征可排序的 Set 集合每个元素有一个score属性根据score值排序底层是跳表SkipList Hash表。元素不重复、查询快。使用场景各类排行榜。常见命令ZADD key score member添加/更新元素及其 scoreZREM key member删除指定元素ZSCORE key member获取指定元素的 scoreZRANK key member获取指定元素的排名按 score 升序ZCARD key获取集合中元素个数ZCOUNT key min max统计 score 在给定区间内的元素个数ZINCRBY key increment member指定元素自增指定步长ZRANGE key start end按 score 排序获取排名范围内的元素ZRANGEBYSCORE key min max按 score 排序获取 score 范围内的元素ZDIFF / ZINTER / ZUNION求集合的差集、交集、并集注意默认排名为升序从小到大。如需降序在命令的Z后面添加REV即可如ZREVRANGE、ZREVRANK。