楼主: 金南俊
98 0

[教育经济学基本知识] Redis 学习笔记(三):Redis 命令大爆料!记这几个,够用到飞起 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

小学生

42%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
50 点
帖子
4
精华
0
在线时间
0 小时
注册时间
2018-5-4
最后登录
2018-5-4

楼主
金南俊 发表于 2025-11-21 18:30:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

Redis 学习笔记(三):高频命令详解,轻松掌握核心操作

完成 Redis 的安装后,下一步就是掌握与它交互的关键——命令操作。无需死记硬背,结合实际应用场景理解记忆,效率更高、印象更深刻。

本文聚焦于 Redis 四种最常用的数据类型:String、Hash、List 和 Sorted Set。通过生活化类比、典型使用场景以及关键命令演示,帮你快速上手日常开发中高频使用的指令。

一、字符串(String)—— 单值存储的“小格子”

适用场景:适用于缓存用户昵称、验证码、商品库存、访问计数等单一数据项。

可以将 String 想象成桌面上的一个个小格子,每个格子只能存放一个值。它是 Redis 中最基本也是最常使用的数据结构。

常用命令一览

SET key value
SET user:1001 "奶茶狂热者"
GET key
GET user:1001
INCR key
INCR 奶茶销量
DECR key
DECR 库存:iphone
INCRBY key increment
INCRBY 订单数 10
SETEX key seconds value
SETEX token:abc123 3600 "xxx"
命令 示例 说明
SET SET username "Alice" 设置键值对,若 key 已存在则覆盖原值
GET GET username 获取指定 key 对应的值
INCR INCR page_view 将对应 key 的数值加 1;若 key 不存在,则初始化为 0 后再 +1
DECR DECR stock 将数字值减 1
INCRBY INCRBY score 10 按指定步长增加数值(如 +10)
SETEX SETEX token 3600 "abc123" 设置带过期时间的字符串,单位为秒

实战建议

  • INCR 是原子性操作,天然适合高并发环境下的计数需求,例如点赞数、页面浏览量统计。
  • 虽然 String 最大支持 512MB 数据存储,但建议仅用于轻量级数据,避免阻塞 Redis 主线程影响性能。
INCR

二、哈希(Hash)—— 结构化对象的“文件夹”

适用场景:适合存储具有多个字段的对象,如用户信息、商品详情或系统配置。

可以把 Hash 看作一个文件袋或文件夹,里面能存放多个“字段-值”对,比如姓名、年龄、邮箱等。相比用多个独立的 String 存储,Hash 更节省内存且结构清晰。

常用命令一览

HSET key field value [field value ...]
HSET user:1001 name "奶茶狂热者" age 20 city "杭州"
HGET key field
HGET user:1001 age
HGETALL key
HGETALL user:1001
HMGET key field1 field2 ...
HMGET user:1001 name city
HDEL key field1 [field2 ...]
HDEL user:1001 age
HEXISTS key field
HEXISTS user:1001 email
命令 示例 说明
HSET HSET user:1001 name Alice age 28 设置一个或多个字段及其值
HGET HGET user:1001 name 获取某个字段的具体值
HGETALL HGETALL user:1001 返回所有字段和对应的值(不推荐用于大对象)
HMGET HMGET user:1001 name age email 批量获取多个字段的值
HDEL HDEL user:1001 age 删除一个或多个字段
HEXISTS HEXISTS user:1001 phone 判断某字段是否存在

实战建议

  • Redis 底层会根据字段数量自动切换编码方式(ziplist 或 hashtable),在小对象情况下非常节省内存。
  • 避免对大型 Hash 执行 HGETALL,以免造成网络开销过大;可使用 HSCAN 分批读取数据。
HGETALL
HSCAN

三、列表(List)—— 有序的“排队队列”

适用场景:适用于消息队列、最新动态流、任务调度、评论列表等需要顺序处理的数据结构。

List 类似于超市收银台前的排队队伍,支持从两端插入和弹出元素,实现先进先出(FIFO)或后进先出(LIFO)逻辑,是轻量级队列的理想选择。

常用命令一览

LPUSH key value [value ...]
LPUSH news:latest "抽到隐藏款啦"
RPUSH key value [value ...]
RPUSH task:queue "发送邮件"
LPOP key
LPOP task:queue
RPOP key
RPOP log:buffer
LRANGE key start stop
LRANGE news:latest 0 9
LLEN key
LLEN news:latest
命令 示例 说明
LPUSH LPUSH tasks "backup_db" 从左侧(头部)插入元素
RPUSH RPUSH logs "user_login" 从右侧(尾部)插入元素
LPOP LPOP tasks 从左边弹出一个元素,常用于消费队列任务
RPOP RPOP logs 从右边弹出元素
LRANGE LRANGE news 0 9 获取指定索引范围内的元素(0 表示第一个,-1 表示最后一个)
LLEN LLEN queue 获取列表当前长度

实战建议

  • 使用 LPUSH + RPOP 可构建标准的先进先出队列(FIFO)。
  • LPUSH + RPOP
  • 采用 LPUSH + LPOP 则形成后进先出栈结构(LIFO)。
  • LPUSH + LPOP
  • List 更适合短队列场景,超长列表会影响 Redis 性能,因其基于单线程模型运行。

四、有序集合(Sorted Set / ZSet)—— 带分数排名的“排行榜”

适用场景:适用于积分排行、热门商品 Top N、延迟任务调度、用户活跃度榜单等需按权重排序的业务。

ZSet 中每个成员都关联一个分数(score),Redis 会根据 score 自动排序,支持高效查询排名、范围检索,是实现排行榜功能的最佳选择。

常用命令一览

ZADD key score member [score member ...]
ZADD game:scores 999 "小明" 888 "小红"
ZREVRANGE key start stop [WITHSCORES]
ZREVRANGE game:scores 0 9 WITHSCORES
ZRANGE key start stop [WITHSCORES]
ZRANGE game:scores 0 -1
ZSCORE key member
ZSCORE game:scores "小明"
ZRANK key member
ZRANK game:scores "小明"
ZREVRANK key member
ZREVRANK game:scores "小明"
ZREM key member [member ...]
ZREM game:scores "小明"
命令 示例 说明
ZADD ZADD leaderboard 1000 "player1" 添加成员并设置其分数
ZREVRANGE ZREVRANGE leaderboard 0 9 WITHSCORES 按分数倒序获取前 10 名(含分数)
ZRANGE ZRANGE leaderboard 0 -1 正序获取全部成员
ZSCORE ZSCORE leaderboard "player2" 查看某成员当前的分数
ZRANK ZRANK leaderboard "player3" 获取成员在有序集中的正序排名(从 0 开始)
ZREVRANK ZREVRANK leaderboard "player1" 获取成员的逆序排名(最高分排第一,返回 0)
ZREM ZREM blacklist "user_spam" 删除一个或多个成员

实战建议

  • ZADD 支持更新已有成员的分数,并自动重新排序。
  • ZADD
  • 利用 ZRANGEBYSCORE 可进行分数区间查询,例如“找出得分超过 900 的玩家”。
  • ZRANGEBYSCORE
  • 有序集合底层采用跳表(Skip List)实现,插入、删除和排名查询的时间复杂度均为 O(log N),性能优异。

? 核心命令速查表

SET
GET
INCR
SETEX
HSET
HGET
HGETALL
HMGET
HDEL
数据类型 写入命令 读取命令 特色功能 典型用途
String SET, SETEX GET INCR, DECR, INCRBY 缓存、计数器
Hash HSET, HMSET HGET, HGETALL, HMGET HLEN, HEXISTS 用户资料、对象存储

Sorted Set:排行榜与积分系统应用

ZADD

ZREVRANGE

ZSCORE

ZRANK

ZREM

List 数据结构:适用于消息队列与最新列表场景

LPUSH

/

RPUSH

LPOP

/

RPOP

,

LRANGE

LLEN

用户资料管理与对象存储方案

实践建议

建议在本地的 Redis CLI 环境中亲自执行上述命令,加深理解。

可尝试组合使用不同数据类型:例如利用

String

存储 Token,通过

Hash

保存用户信息,并使用

ZSet

实现点赞排行榜功能。

同时需关注内存占用与系统性能,避免因大 Key 或大 Value 导致服务延迟。

核心要点:掌握关键命令即可,无需贪多;理解实际应用场景后,命令的使用将水到渠成。

后续内容预告

《Redis 学习笔记(四):Redis 隐藏大招曝光!这几个特性香到爆》

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Redis 学习笔记 Dis red edi

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
扫码
拉您进交流群
GMT+8, 2026-1-31 14:05