2.Redis核心数据结构

概率

核心数据结构

  • String 字符串

  • Hash 哈希

  • List 链表

  • Set 集合

  • Sorted Set / ZSet 有序集合

  • Bitmap 位图

  • GEO 地理位置

Redis帮助命令

复制代码

help @<group> # 查看某类命令 help <command> # 查看单个命令用法 help <tab> # 查看可帮助主题 quit # 退出

String 字符串结构

String是Redis最基础,最常用的数据结构,可存储字符串,数字,Json串,二进制等

常用命令

复制代码

SET key value # 设值 GET key # 取值 MSET k1 v1 k2 v2 # 批量设值 MGET k1 k2 # 批量取值 SETNX key value # 不存在则设置(分布式锁基础) DEL key # 删除 EXPIRE key seconds # 设置过期时间 # 原子加减(高并发计数必备) INCR key # +1 DECR key # -1 INCRBY key 10 # +10 DECRBY key 5 # -5

应用场景

普通缓存:用户信息、商品信息、配置

对象缓存:存储 JSON 字符串

分布式锁SET lock:order true EX 10 NX

计数器:点赞数、阅读数、库存

分布式 ID:全局唯一 ID 生成

Hash 哈希结构

Hash适合存储对象/结构化数据,如用户信息,商品信息,购物车

常见命令

复制代码

HSET key field value # 设置单个字段 HGET key field # 获取单个字段 HMSET key f1 v1 f2 v2 # 批量设置 HMGET key f1 f2 # 批量获取 HDEL key field # 删除字段 HLEN key # 字段数量 HGETALL key # 获取所有键值 HINCRBY key field num # 字段原子自增

应用场景:电商购物车

用户id为key,商品id为filed,视频数量为value

复制代码

1) 添加商品hset cart:1001 10088 1 2) 增加数量hincrby cart:1001 10088 1 3) 商品总数hlen cart:1001 4) 删除商品hdel cart:1001 10088 5) 获取购物车所有商品hgetall cart:1001

优点

  • 结构清晰,适合存储对象

  • 相比 String 更省内存

  • 支持字段级操作

缺点

  • 无法对 field 设置过期

  • 集群模式下不适合超大 hash

List列表结构

List是有序可重复的双向列表结构,支持双端操作

常见命令

复制代码

LPUSH key val1 val2 # 左进(队头) RPUSH key val1 val2 # 右进(队尾) LPOP key # 左出 RPOP key # 右出 LRANGE key 0 -1 # 查看全部 BLPOP key timeout # 阻塞左弹出 BRPOP key timeout # 阻塞右弹出

天然实现的数据结构

  • 栈(Stack):LPUSH + LPOP

  • 队列(Queue):LPUSH + RPOP

  • 阻塞 MQ:LPUSH + BRPOP

应用场景

  • 消息队列、任务队列

  • 时间线、动态列表

  • 评论列表、播放列表

Set集合结构

Set是无序,不可重复的集合,支持并集,交集,差集

常见命令

复制代码

SADD key mem1 mem2 # 添加 SREM key mem # 删除 SMEMBERS key # 查看所有 SCARD key # 元素个数 SISMEMBER key mem # 是否存在 SRANDMEMBER key count # 随机取(不删) SPOP key count # 随机取(删除) # 集合运算 SINTER k1 k2 k3 # 交集 SUNION k1 k2 k3 # 并集 SDIFF k1 k2 k3 # 差集

应用场景

  1. 抽奖:参与用户 → 随机抽取中奖者

  2. 点赞 / 收藏 / 标签:去重、统计数量

  3. 共同关注、好友推荐(交集、差集)

  4. 去重统计:UV、独立设备

Sorted Set / ZSet 有序集合

在 Set 基础上增加 score(分数),实现自动排序。

常见命令

复制代码

ZADD key score mem # 添加 ZREM key mem # 删除 ZSCORE key mem # 查分数 ZINCRBY key num mem # 分数自增 ZCARD key # 元素个数 ZRANGE key 0 -1 # 正序 ZREVRANGE key 0 -1 # 倒序(常用)

应用常见:

  • 排行榜

  • 成绩排名、粉丝排序

  • 延时任务(score = 时间戳)

BitMap位图

Bitmap 以bit 位存储数据,极省空间。

常用命令

复制代码

SETBIT key offset val # 设置某一位 GETBIT key offset # 获取某一位 BITCOUNT key # 统计1的个数 BITOP AND/OR/XOR dest k1 k2 # 位运算

相关推荐
白帽小丑3 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Quincy_Freak5 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
疋瓞7 小时前
python和C++对比(1)_数据类型和数据结构
数据结构·c++·python
2601_962683897 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程8 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
如此这般英俊8 小时前
手搓Claude Code-第六章 subagent
数据结构·人工智能·python·语言模型·自然语言处理
shushangyun_9 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
Tairitsu_H10 小时前
[LC优选算法#17] 链表 | 合并 K 个升序链表 | K个⼀组翻转链表
数据结构·算法·链表
华山令狐虫10 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi
IvorySQL10 小时前
PG 技术日报|2026-07-04
数据库·人工智能·postgresql·开源