【从零开始学习Redis|第五篇】Redis 常见数据类型和应用场景

本篇帮助你学习到Redis 常见数据类型和应用场景

前言

我们都知道Redis是一个Key → Value结构的数据库,Redis 和传统数据库最大的区别是:数据存在内存里,这使得他读取的速度非常快。问题来了:
如果 Redis 只是 Key-Value,会发生什么?

假设 Redis 只有最简单结构:

key → value

那 value 只能是一个字符串。

比如存用户信息:

user:1 → "Tom,20,Beijing"

问题马上出现:

如果我只想修改 年龄:

20 → 21

你必须:

1 取出整个字符串

2 解析

3 修改

4 再写回

这非常麻烦。

于是 Redis 做了一件非常聪明的事情:

直接提供多种数据结构,让你更自然地存数据。

Redis 不只是数据库,它更像一个:

高性能数据结构服务器

Redis 数据类型整体结构

String

Hash

List

Set

Sorted Set (ZSet)

数据结构 像什么
String 一个值
Hash 一个对象
List 一个队列
Set 一个不重复集合
ZSet 一个带排名的集合

String:最基础的数据类型

在Redis中String不仅仅可以存储字符串。

Redis 的 String 可以存:

字符串

数字

JSON

二进制

应用场景 1:缓存

例如:

user:1001 → JSON用户信息

流程:

请求用户信息

先查 Redis

Redis 有 → 直接返回

Redis 没有 → 查数据库

这样数据库压力会小很多。

应用场景 2:计数器

Redis 的 String 支持一个非常强大的操作:

INCR

意思是:

数字 +1

例如统计文章阅读量:

article:100:view → 100

用户访问一次:

INCR article:100:view

阅读量自动增加。

常见用途:

点赞数 阅读量 库存 访问量

Hash:用来存对象

如果要存 结构化数据,String 就不够方便了。

比如用户对象:

id

name

age

city

Redis 提供:Hash

结构像这样:

key → field → value

例子:

user:1001

name → Alice

age → 20

city → Shanghai

你可以把 Hash 理解为:

一个对象

Hash 的优势

如果用户年龄更新:

20 → 21

只需要修改一个字段:

HSET user:1001 age 21

不需要更新整个对象。
Hash 常见场景

非常适合存:

用户信息 商品信息 订单信息

因为它们本质上都是:

一个对象 + 多个属性

List:有顺序的列表

List 的本质是:

一个有序队列

例如:

消息1, 消息2, 消息3

Redis 支持两端操作:

LPUSH 左边插入 RPUSH 右边插入

所以它可以模拟:

队列

应用场景 1:消息队列

生产者:

LPUSH queue message

消费者:

RPOP queue

流程:

生产者 → Redis List → 消费者

这种方式常用于简单系统的任务队列。

应用场景 2:最新列表

例如:

最新文章 最新评论

新数据:

LPUSH

读取:

LRANGE

Set:不重复集合

Set 的特点非常简单:

元素不会重复

例如:

{1,2,3,4}

如果你插入:

SADD set 3

结果仍然是:

{1,2,3,4}

Set 的应用
用户去重

例如统计:

今天访问网站的用户

操作:

SADD visit:20250308 user1

SADD visit:20250308 user2

Redis 自动去重。

共同好友

Redis 支持集合运算:

交集

并集

差集

例如:

A 的好友

B 的好友

求:

共同好友

ZSet:带排名的集合

ZSet(Sorted Set)是 Redis 非常强大的结构。

结构:

value + score

例如:

Alice 100

Bob 80

Tom 120

Redis 会按 score 自动排序:

Tom 120

Alice 100

Bob 80

最经典应用:排行榜

例如游戏排行榜:

玩家A 1500

玩家B 2000

玩家C 1800

存入:

ZADD rank 1500 playerA ZADD rank 2000 playerB

查询:

ZRANGE rank

即可得到排行榜。

常见用途:

游戏排行榜

热搜榜

点赞排行

积分榜

总结

本篇讲述了Redis中的五种常见数据类型:String,Hash,List,set,Zset。具体区分见下表。

数据结构 本质 典型场景
String 单值 缓存、计数器
Hash 对象 用户信息
List 队列 消息队列
Set 去重集合 用户集合
ZSet 排序集合 排行榜
相关推荐
2301_800895102 小时前
二分学习--备战蓝桥杯版h
学习
ZCollapsar.2 小时前
C++从入门到入土 (5):.C/C++内存管理
c语言·c++·学习
DolphinDB智臾科技2 小时前
DolphinDB:技术赋能钢铁业,国产时序数据库领路数智化落地
数据库·物联网·时序数据库·dolphindb
future02102 小时前
Spring 核心原理学习路线(完结汇总):7 篇文章串起 IOC、AOP、事务与 Boot
后端·学习·spring
熬夜有啥好2 小时前
Linux软件编程——数据库——自制小词典
数据库·linux软件编程·自制词典
青桔柠薯片2 小时前
数据库编程:从SQLite基础到C语言集成
linux·数据库·学习·sqlite
技术净胜2 小时前
MySQL 主从复制(日志核心)完整教程
数据库·mysql·adb
Zachery Pole3 小时前
pytorch 我是土堆课程学习
学习·yolo
夏光芒3 小时前
SQLSERVER数据库常用语句
数据库·sqlserver