Redis的常用操作代码(基于黑马苍穹外卖的day5中redis的讲解)
本文介绍了Redis的核心概念、与MySQL的关键区别,以及5种常用数据类型。Redis是一款基于内存的键值数据库,相比MySQL具有极高的读写性能(10万+QPS),但缺乏复杂查询和强事务支持。文章详细讲解了String、Hash、List、Set和Zset五种数据类型的特性、底层实现及基本操作命令,并提供了CLI示例代码。Redis适用于缓存、高频读写等场景,而MySQL更适合持久化存储和复杂
·
从零开始的写博客之旅(悲)
📚 目录(点击跳转对应章节)
1. 什么是Redis?与MySQL的核心区别
2. Redis中常用的5种数据类型
3. 各数据类型的特点与典型用法
1. 什么是Redis?与MySQL的核心区别
1.1 Redis 简介

Redis(Remote Dictionary Server)是一款 开源的基于内存的键值对数据库,由C语言编写,支持持久化(RDB/AOF)、高并发、多数据类型,核心优势是 读写速度极快(内存操作,QPS可达10万+),常用于缓存、分布式锁、消息队列等场景。
1.2 Redis vs MySQL 核心区别(表格对比)(基于ai解释)
| 对比维度 | Redis | MySQL |
|---|---|---|
| 存储介质 | 主要基于内存(可持久化到磁盘) | 基于磁盘(InnoDB有缓冲池缓存) |
| 数据模型 | 键值对(支持多数据类型) | 关系型(表、行、列、约束) |
| 读写性能 | 极高(内存操作,无磁盘IO开销) | 适中(磁盘IO为主,依赖索引优化) |
| 事务支持 | 弱事务(仅保证单命令原子性,支持MULTI批量执行) | 强事务(ACID特性,支持隔离级别) |
| 适用场景 | 缓存、高频读写、分布式锁、排行榜 | 持久化存储、复杂查询(联表、分组)、事务场景 |
| 数据规模 | 适合存储热点小数据(GB级) | 适合存储海量结构化数据(TB级) |
2. Redis中常用的5种数据类型(基于ai解释)

Redis的核心价值在于 灵活的多数据类型支持,以下是开发中最常用的5种:
| 数据类型 | 核心定义 | 底层实现(简单了解) |
|---|---|---|
| String(字符串) | 最基础类型,存储文本/数字,最大512MB | 动态字符串(SDS) |
| Hash(哈希) | 键值对集合(field-value),适合存储对象 | 压缩列表/哈希表 |
| List(列表) | 有序、可重复的字符串集合,支持头尾操作 | 压缩列表/双向链表 |
| Set(集合) | 无序、不可重复的字符串集合,支持集合运算 | 哈希表/整数集合 |
| Zset(有序集合) | 带分数(score)的Set,按分数排序 | 压缩列表/跳表 |
3. 各数据类型的特点与典型用法
黑马课程中对各种数据类型的解释:
1. String 操作

set name "Redis" # 存值
get name # 取值(输出 "Redis")
setex name 30 seconds "Redis" # 将Redis的存储时间设定为30秒
setnx name "Redis" #如果key的值Redis存在,那么输出0,表示已经存在,反之输出1
2. Hash 操作

hash的图形化展示:
hset user:1 name "张三" age 20 # 存储用户对象
hget user:1 name # 获取用户姓名(输出 "张三")
hdel user:1 name # 删除用户姓名字段
hkeys user:1 # 获取所有字段名(输出 "name" "age")
hvals user:1 # 获取所有字段值(输出 "张三" "20")
3. List 操作

lpush list1 "x" "y" "z" # 添加元素(单个或多个)
lrange list1 0 -1 # 获取指定范围内的原素(0表示第一个元素,-1表示最后一个元素)
lpop list1 # 弹出并删除列表的第一个元素(输出 "z")
llen list1 # 获取列表长度(输出 3)
4. Set 操作

sadd set1 "x" "y" "z" # 添加元素(多个元素或者一个元素)
smembers set1 # 获取所有元素(输出 "x" "y" "z")
scard set1 # 获取集合的元素个数(输出 3)
sunion set1 set2 # 求并集(所有元素)
sinter set1 set2 # 求交集(所有元素)
srem set1 "x" # 删除元素(多个元素或者一个元素)
5. Zset 操作

zadd zset1 1 "x" 2 "y" 3 "z" # 添加元素(多个元素或者一个元素)
zrange zset1 0 -1 WITHSCORES # 获取所有元素(输出 "x" "y" "z")( WITHSCORES 表示同时输出分数)(默认是升序排列)(0表示第一个元素,-1表示最后一个元素)
zcard zset1 # 获取有序集合的元素个数(输出 3)
zunionstore zset2 zset1 zset2 # 求并集(所有元素)
zinterstore zset3 zset1 zset2 # 求交集(所有元素)
zrem zset1 "x" # 删除元素(多个元素或者一个元素)
zscore zset1 "x" # 获取元素的分数(输出 "1")
zincrby zset1 "x" 1 # 增加元素分数 1(多个元素或者一个元素)
6.通用的一些操作

keys * # 获取所有键
del key1 key2 key3 # 删除多个键
exsist key1 # 判断键是否存在
type key1 # 获取键的类型
keys pattern* # 获取所有符合模式的键
火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。
更多推荐
所有评论(0)