Redis中string类型的应用场景

String 是 Redis 最基础、用得最多 的类型,最大能存 512MB,可以存字符串、数字、JSON。

一、核心应用场景

1. 缓存热点数据(最常用)

缓存用户信息、商品信息、首页列表、配置信息

  • 把 MySQL 查出来的数据转 JSON,存成 String
  • 前端先查 Redis,没有再查数据库作用:减轻 MySQL 压力,接口秒响应

2. 计数器场景

文章阅读量、点赞数、评论数、访客数、接口访问次数命令:

plaintext

复制代码
incr  key      # 自增1
decr  key      # 自减1
incrby key 10  # 一次性加10

优点:原子操作,并发不怕超卖、统计不准

3. 分布式全局唯一 ID

利用 incr 自增,生成订单 ID、流水号、用户 ID

plaintext

复制代码
incr order_id

全局唯一、高性能。

4. 限流(接口防刷)

比如同一个 IP 1 分钟最多访问 100 次

  • 以 IP 为 key,每次请求 incr
  • 给 key 设置过期时间
  • 超过阈值直接拒绝请求

5. Session 会话共享

登录后把用户会话信息存 String,统一登录认证分布式项目多台服务器,共用 Redis 存登录态。

6. 简单分布式锁

set key value nx ex 过期时间实现简易抢锁、防止重复提交、定时任务互斥。

7. 配置白名单、黑名单

比如会员白名单、IP 黑名单、活动开关直接存字符串,读取极快。

二、一句话总结

Redis String 常用场景:热点数据缓存、计数器、全局唯一 ID、接口限流、Session 共享、简易分布式锁、配置黑白名单


Redis String 四大经典场景(手机验证码、缓存、计数、共享会话)

一、手机验证码场景

业务逻辑

  1. 用户输手机号,点获取验证码
  2. 后端生成 6 位随机验证码
  3. String 存:key=手机号value=验证码
  4. 设置5 分钟过期
  5. 用户输入验证码,后端从 Redis 取值比对

Redis 命令

redis

复制代码
# 设置验证码,5分钟过期
set 13800138000 886699 ex 300

# 取出验证码比对
get 13800138000

# 验证通过删除
del 13800138000

特点

  • 自带过期,不用自己写定时删
  • 读写超快,高并发扛得住
  • 只能用 String 最简单够用

二、缓存功能场景

业务逻辑

把 MySQL 查出来的数据,放到 Redis String 做缓存

  • 查数据:先查 Redis,有就直接返回
  • 没有再查 MySQL,查到后写入 Redis
  • 设置过期,自动更新缓存

存法

用户信息、商品详情、首页 banner、配置信息,都转 JSON 字符串 存 String

命令

redis

复制代码
set user:1001 '{"id":1001,"name":"张三"}' ex 3600
get user:1001

作用

减轻数据库压力,接口极速响应


三、计数功能场景

适用

文章阅读量、点赞数、访客数、接口访问次数、商品销量

核心

String 存数字 ,Redis 自增是原子操作,多并发不会乱

命令

redis

复制代码
# 自增1
incr article:2001:read

# 加10
incrby article:2001:read 10

# 减1
decr article:2001:like

特点

不用自己加锁,天生并发安全,性能极高


四、共享会话 Session 功能

业务场景

分布式项目(多台服务器部署)用户登录后,不能把会话存在单台服务器内存里,否则切换服务器就掉线

逻辑

  1. 用户登录成功,生成唯一 sessionId
  2. 把用户信息存 Redis String
  3. key = sessionId,value = 用户信息 JSON
  4. 所有服务器统一读 Redis,就能共享登录状态

命令

redis

复制代码
set session:abc123xyz '{"userId":1001,"nickName":"小王"}' ex 7200
get session:abc123xyz

作用

实现分布式会话共享,多台服务登录态互通


一句话总总结

  • 手机验证码:String 存验证码 + 设置过期自动失效
  • 缓存:String 存 JSON,缓存数据库热点数据
  • 计数:String 存数字,incr/decr 原子自增
  • 共享会话:String 存 Session,分布式项目登录态互通
相关推荐
人工智能培训13 分钟前
世界模型内嵌,感知交互跃迁
大数据·数据库·人工智能·神经网络·生成对抗网络
隔壁阿布都19 分钟前
ClickHouse完整指南
服务器·数据库·clickhouse
TDengine (老段)28 分钟前
TDengine JOIN 完整语法 — Inner/Outer/ASOF/Window 全语法详解
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
ai_coder_ai30 分钟前
编写自动化脚本,在自己后端服务中使用云原生Baas服务进行编码和解码相关操作
数据库·云原生·自动化
hehelm1 小时前
AI 大模型接入 SDK —项目概述
linux·服务器·网络·数据库·c++
xiaofeichaichai1 小时前
NestJS 实战:JWT 登录认证、Token 刷新与安全退出
redis·nestjs·jwt·twitter
Database_Cool_1 小时前
阿里云 Lindorm vs Elasticsearch 检索存储一体对比:多模数据库一站式方案首选
数据库·阿里云
大郭鹏宇2 小时前
下篇:LangChain Agent 智能体从入门到实战(二)—— 记忆管理、中间件与最佳实践
网络·数据库·人工智能
Icoolkj2 小时前
ICOOLKJ 前后端分离项目完整部署文档(MySQL8.4+Redis+JDK21+Nginx+HTTPS+自动同步演示库)
redis·nginx·https
fīɡЙtīиɡ ℡2 小时前
本地进程缓存
缓存