news 2026/7/8 2:59:49

Redis基础day01

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Redis基础day01

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:删除指定 key
  • EXISTS key:判断 key 是否存在
  • EXPIRE key seconds:设置 key 的过期时间(自动删除)
  • TTL key:查看 key 的剩余有效期(-1 永久,-2 已过期)

提示:可使用help [command]查看具体命令用法

4. Key 的设计规范

采用层级结构设计,通过冒号分隔:
项目名:业务名:类型:id
例如:students:user:1


5. String 类型详解

常见命令

命令作用
SET key value添加或修改键值对
GET key获取 String 类型的 value
MSET key1 value1 key2 value2批量添加
MGET key1 key2批量获取
INCR key整型值自增 1
INCRBY 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:移除并返回列表左侧第一个元素(无则返回 nil)
  • RPUSH key element ...:向列表右侧插入一个或多个元素
  • RPOP key:移除并返回列表右侧第一个元素
  • LRANGE key start end:返回指定范围内的元素(支持负数索引)
  • BLPOP / BRPOP key timeout:阻塞式弹出,无元素时等待指定时间,而非直接返回 nil

8. Set 类型详解

特征:类似 Java 的HashSet(Value 为 null 的 HashMap)。无序、元素不可重复、查找快,天然支持交集、并集、差集。
使用场景:社交软件的共同好友、标签计算。

常见命令

  • SADD key member ...:向集合中添加一个或多个元素
  • SREM key member ...:移除集合中的指定元素
  • SCARD key:返回集合中元素的个数
  • SISMEMBER key member:判断元素是否存在于集合中
  • SMEMBERS key:获取集合中所有元素
  • SINTER key1 key2 ...:求多个集合的交集
  • SDIFF key1 key2 ...:求集合的差集(key1 - key2)
  • SUNION key1 key2 ...:求多个集合的并集

9. SortedSet 类型详解

特征:可排序的 Set 集合,每个元素有一个score属性,根据score值排序,底层是跳表(SkipList)+ Hash表。元素不重复、查询快。
使用场景:各类排行榜。

常见命令

  • ZADD key score member:添加/更新元素及其 score
  • ZREM key member:删除指定元素
  • ZSCORE key member:获取指定元素的 score
  • ZRANK 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即可,如ZREVRANGEZREVRANK

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/8 2:54:55

AI短剧的恐怖谷,为什么观众3秒就能识破?

为什么同样的短剧,有的让人欲罢不能,有的刷到就划走? 剧情、节奏都能达标,但画面一出来,观众就是留不住。不是他们"挑剔",是人类感知系统里有一套自动运行的检测机制,比任何审核算法都…

作者头像 李华
网站建设 2026/7/8 2:52:34

终极开源RGB控制指南:如何用一个软件统一管理所有设备灯光

终极开源RGB控制指南:如何用一个软件统一管理所有设备灯光 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/OpenRGB. Re…

作者头像 李华
网站建设 2026/7/8 2:51:53

Claude/GPT 全模型 API 国内对接实践分享

背景最近在做一个 AI 项目,需要对接多个大模型 API,踩了不少坑,分享一些经验给大家。项目需求是对接 Claude 和 GPT 系列模型,用于内容生成和代码辅助。一开始直接对接官方 API,遇到了几个问题:1. 网络环境…

作者头像 李华
网站建设 2026/7/8 2:50:17

Codex 与编辑器怎么配合?终端、插件和项目工作区实践

🛠️ Codex CLI 不一定要替代编辑器,更适合和编辑器形成分工。 💡 终端负责分析和计划,编辑器负责 review、运行和最终修改,这样的工作流更稳定。 🚀 为什么这个主题值得单独讲 让 Codex CLI 与编辑器、插…

作者头像 李华
网站建设 2026/7/8 2:49:06

关于nginx索引目录提供文件下载的坑

正常显示下载目录: 当文件夹内出现首页文件时(即index指令指定的文件名,默认为index.html),会直接读取首页文件 删除首页文件或改名即可正常显示

作者头像 李华
网站建设 2026/7/8 2:47:36

HSTracker:macOS平台炉石传说智能套牌追踪器全面指南

HSTracker:macOS平台炉石传说智能套牌追踪器全面指南 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker HSTracker是一款专为macOS平台打造的炉石传说智能套牌追…

作者头像 李华