当前位置: 首页 > news >正文

Redis 五种核心数据类型语法保姆级教学

Redis 五种核心数据类型详解(附语法+场景+练习+命令速记)


文章目录

  • Redis 五种核心数据类型详解(附语法+场景+练习+命令速记)
    • 1. String(字符串)
      • 常用命令
      • 完整练习(调用所有命令 + 注释)
      • 命令快速复习
    • 2. Hash(哈希)
      • 常用命令
      • 完整练习(调用所有命令 + 注释)
      • 命令快速复习
    • 3. List(列表)
      • 常用命令
      • 完整练习(调用所有命令 + 注释)
      • 命令快速复习
    • 4. Set(集合)
      • 常用命令
      • 完整练习(调用所有命令 + 注释)
      • 命令快速复习
    • 5. ZSet(有序集合)
      • 常用命令
      • 完整练习(调用所有命令 + 注释)
      • 命令快速复习
    • 总结

1. String(字符串)

String 是 Redis 最基础的数据类型,本质是二进制安全的字符串,可存储文本、数字、序列化对象等,单个值最大支持 512MB。
特点:支持原子操作,是所有类型的基础。

常用命令

SET key value GET key MSET k1 v1 k2 v2 MGET k1 k2 SETNX key value INCR key DECR key INCRBY key 步长 DECRBY key 步长 SET key value EX 秒 NX

完整练习(调用所有命令 + 注释)

# 1. 设置单个键值 SET name Redis # 2. 获取单个值 GET name # 3. 批量设置多个键 MSET age 20 city beijing # 4. 批量获取多个值 MGET age city # 5. 不存在才设置(分布式锁常用) SETNX name MySQL SETNX author zhangsan # 6. 数字自增 SET count 10 INCR count # 7. 数字自减 DECR count # 8. 按步长增加 INCRBY count 5 # 9. 按步长减少 DECRBY count 3 # 10. 设置带过期时间且不存在才赋值 SET token 123456 EX 60 NX

命令快速复习

单值读写用 SET/GET,批量操作 MSET/MGET;NX 不存在赋值,INCR/DECR 原子增减,EX 附加过期时间,全覆盖字符串核心操作。


2. Hash(哈希)

Hash 是键值对集合,适合存储对象型数据,可理解为“Redis 中的字典”。
特点:单个 key 对应多个 field-value 对,支持按字段单独读写,节省内存且操作高效。

常用命令

HSET key field value HGET key field HMSET key f1 v1 f2 v2 HMGET key f1 f2 HGETALL key HSETNX key field value HDEL key field HINCRBY key field 步长 HLEN key

完整练习(调用所有命令 + 注释)

# 1. 设置单个字段 HSET user:1 name zhangsan # 2. 获取单个字段 HGET user:1 name # 3. 批量设置多个字段 HMSET user:1 age 20 email zs@qq.com # 4. 批量获取多个字段 HMGET user:1 age email # 5. 获取所有字段和值 HGETALL user:1 # 6. 字段不存在才设置 HSETNX user:1 name lisi HSETNX user:1 phone 123456 # 7. 删除字段 HDEL user:1 email # 8. 字段值自增 HINCRBY user:1 age 2 # 9. 获取字段数量 HLEN user:1

命令快速复习

Hash 操作全带 H,单字段 HSET/HGET,批量 HMSET/HMGET,全量查询 HGETALL;HSETNX 字段互斥,HDEL 删除字段,HINCRBY 字段自增,HLEN 统计字段数。


3. List(列表)

List 是有序、可重复的字符串列表,底层采用双向链表实现,支持两端快速增删。
特点:按插入顺序排序,支持头/尾操作,适合实现队列与栈结构。

常用命令

LPUSH key v1 v2 RPUSH key v1 v2 LPOP key RPOP key LRANGE key start stop BLPOP key 超时秒 BRPOP key 超时秒

完整练习(调用所有命令 + 注释)

# 1. 左侧插入元素 LPUSH msg hello # 2. 右侧插入元素 RPUSH msg world redis # 3. 左侧弹出元素 LPOP msg # 4. 右侧弹出元素 RPOP msg # 5. 查看列表所有元素 LRANGE msg 0 -1 # 6. 阻塞式左侧弹出 BLPOP msg 5 # 7. 阻塞式右侧弹出 BRPOP msg 5

命令快速复习

左插 LPUSH、右插 RPUSH,左弹 LPOP、右弹 RPOP;LRANGE 遍历列表,B 开头为阻塞弹出,适配队列、栈有序场景。


4. Set(集合)

Set 是无序、不可重复的字符串集合,底层采用哈希表实现,支持高效的成员判断与集合运算。
特点:自动去重,成员无序,交集/并集/差集操作高效。

常用命令

SADD key m1 m2 SREM key m1 SMEMBERS key SISMEMBER key m1 SCARD key SINTER s1 s2 SUNION s1 s2 SDIFF s1 s2 SINTERSTORE dest s1 s2 SUNIONSTORE dest s1 s2 SDIFFSTORE dest s1 s2

完整练习(调用所有命令 + 注释)

# 1. 添加元素 SADD user:1 a b c d # 2. 删除元素 SREM user:1 d # 3. 查看所有元素 SMEMBERS user:1 # 4. 判断元素是否存在 SISMEMBER user:1 a # 5. 获取元素个数 SCARD user:1 # 6. 准备第二个集合 SADD user:2 a b e f # 7. 求交集 SINTER user:1 user:2 # 8. 求并集 SUNION user:1 user:2 # 9. 求差集 SDIFF user:1 user:2 # 10. 交集存入新集合 SINTERSTORE user:common user:1 user:2 # 11. 并集存入新集合 SUNIONSTORE user:all user:1 user:2 # 12. 差集存入新集合 SDIFFSTORE user:diff user:1 user:2

命令快速复习

Set 操作均带 S,SADD 增、SREM 删;SMEMBERS 查全部,SISMEMBER 判存在,SCARD 统计数量;SINTER交集、SUNION并集、SDIFF差集,STORE 后缀固化运算结果。


5. ZSet(有序集合)

ZSet 是有序、不可重复的字符串集合,每个成员关联一个分数(score),按分数自动排序。
特点:成员唯一,分数可重复,支持按分数范围查询,是排行榜、延时队列的核心实现。

常用命令

ZADD key 分数1 m1 分数2 m2 ZREM key m1 ZSCORE key m1 ZINCRBY key 增量 m1 ZRANGE key start stop [WITHSCORES] ZREVRANGE key start stop [WITHSCORES] ZUNIONSTORE dest 2 k1 k2 ZINTERSTORE dest 2 k1 k2

完整练习(调用所有命令 + 注释)

# 1. 添加带分数的成员 ZADD rank 100 zs 90 ls 80 ww # 2. 删除成员 ZREM rank ww # 3. 获取成员分数 ZSCORE rank zs # 4. 增加成员分数 ZINCRBY rank 10 zs # 5. 正序查询(低到高) ZRANGE rank 0 -1 WITHSCORES # 6. 倒序查询(高到低,排行榜用) ZREVRANGE rank 0 -1 WITHSCORES # 7. 准备第二个有序集合 ZADD rank2 95 zs 85 ll # 8. 并集存入新集合 ZUNIONSTORE rank:total 2 rank rank2 # 9. 交集存入新集合 ZINTERSTORE rank:common 2 rank rank2

命令快速复习

ZSet 命令全带 Z,ZADD 增数据、ZREM 删成员;ZSCORE 查分数,ZINCRBY 调整分数;ZRANGE 正序、ZREVRANGE 倒序,UNION/INTER 实现有序集合运算。


总结

Redis 五种数据类型各有侧重,核心应用场景速记:

  • String:基础存储、计数器、分布式锁
  • Hash:对象存储、购物车、配置信息
  • List:消息队列、栈/队列、最新列表
  • Set:去重、共同好友、标签系统
  • ZSet:排行榜、延时队列、权重排序

http://www.jsqmd.com/news/901587/

相关文章:

  • 面试官:Function Calling 是怎么工作的?模型怎么知道要调哪个工具?
  • 基于多智能体流水线的代码审查自动化实践与架构解析
  • OpenSnitch:Linux 平台的应用防火墙
  • 边缘-云端协作的Verilog代码优化框架解析
  • 8051汇编开发中A与ACC寄存器差异解析
  • Next.js项目国际化:从Day One开始的架构设计与实践指南
  • 不只是出SQL和报表:离智能决策还有多远
  • CSDN AI数字营销初体验:一键打通技术内容创作与流量增长闭环
  • 2026年热电阻厂家/品牌推荐榜单:PT100/PT1000铂热电阻、Cu50铜热电阻及铠装防爆耐高温工业测温热电阻优质厂商深度解析 - 品牌企业推荐师(官方)
  • 没想到!坚持用森优时铁锌维,白发居然悄悄转黑了 科学解读内调养发的真实逻辑
  • 从协议特征到实战:手把手教你用Wireshark过滤OICQ和微信UDP包(含特征码解析)
  • 27周洋鑫1000题|杨超三大计算资料
  • 备份文件 从A目录备份到B目录(含子文件)
  • AI智能问数怎么实现?从需求到落地的全路径
  • VN5640硬件配置详解:从Network-base模式选择到内部Eth通道拖拽配置(附CANoe联动步骤)
  • 交通通信信号基石:TM-150 射频信号源,铁路高速射频链路校准核心
  • 在 Taotoken 控制台清晰追踪各项目模型调用量与费用消耗
  • 基于DGS与Apollo Router构建企业级GraphQL联邦超级图实战
  • 2026年精炼渗透剂厂家推荐榜单:耐碱渗透剂、JFC、OEP98、AEP、快T、SAS、磷酸酯、AOS、混纺专用源头工厂深度解析 - 品牌企业推荐师(官方)
  • 14种LLM输出评分策略:构建可靠AI应用的自动化评估框架
  • 避开这些坑!STM32F4位置控制中,串级PID的调试心得与波形分析
  • 数据部门必看:生成式引擎合规优化保姆级教程,防止训练偏差
  • 别再用EasyX了!用纯C和Windows API写贪吃蛇,彻底搞懂游戏循环
  • 本地化语音AI智能体:基于Whisper与Llama的离线部署实践
  • 深挖.NET 11:.NET Aspire 在云原生应用韧性架构构建的探索与实践
  • 水解蛋黄粉:儿童骨骼发育的关键营养支持
  • React Grab工具详解:AI助力Vue3、Svelte和Solid前端元素调试
  • ContextCapture Master 倾斜摄影测量实景三维建模技术应用
  • 电赛小车循迹模块TCRT5000的5个调试技巧与常见误区,让你的小车不再‘蛇皮走位’
  • 企业AI开发工具:界面自动生成与前端代码交付能力详解