Redis解析

一、Redis 到底是个啥?(白话版)

简单说,Redis 就是一款超高速的内存数据库,你可以把它理解成 "电脑内存里的万能储物箱"------ 数据都存在内存里(不是硬盘),所以读写速度快到离谱(百万级 / 秒);同时它还能把数据持久化到硬盘,不怕断电丢数据。和 MySQL 这种传统数据库比,Redis 更像 "贴身小仓库",专门存高频用、要快速取的数据,而 MySQL 是 "大库房",存海量、不追求极致速度的数据。

二、Redis 能干嘛?(实际应用场景)

日常开发中,Redis 几乎是后端必备,核心用在这 6 个场景:

  1. 缓存:把数据库里的热点数据(比如商品详情、用户信息)存到 Redis,用户请求时直接从 Redis 取,不用每次查数据库,网站速度能提几十倍;
  2. 分布式锁:多台服务器抢同一个资源(比如秒杀下单),用 Redis 做 "锁",避免重复操作;
  3. 计数器 / 限流器:文章阅读量、接口请求次数、秒杀库存计数,Redis 能原子性加减,不计数出错;
  4. 消息队列:简单的消息收发(比如订单通知、延时提醒),比专门的 MQ(如 RabbitMQ)轻量;
  5. 会话存储:用户登录后的 token、购物车数据,存在 Redis 里,分布式系统下多台服务器能共享;
  6. 延时任务:比如订单 15 分钟未支付自动取消,用 Redis 的过期键功能就能实现。

三、Redis 的核心特点(为啥这么好用)

  1. 速度快:数据存在内存,单线程模型避免线程切换开销,官方测试读速 11 万 / 秒、写速 8.1 万 / 秒;
  2. 数据类型丰富 :不只是存字符串,还支持哈希(Hash)、列表(List)、集合(Set)、有序集合(ZSet),能满足不同场景需求;
    • 比如存用户信息用 Hash(key = 用户 ID,value={name:xx, age:xx}),存排行榜用 ZSet;
  3. 支持持久化 :有两种方式把内存数据存到硬盘:
    • RDB:定时快照(比如每小时存一次),适合备份;
    • AOF:记录所有写操作,重启时重放操作恢复数据,更安全;
  4. 支持集群 / 主从:能搭多台 Redis 服务器,实现高可用(一台挂了另一台顶上)、扩容(存更多数据)。

四、新手入门:Redis 最基础的使用(命令 + 代码示例)

1. 核心命令(终端直接用)

bash

运行

复制代码
# 1. 存字符串(key=name,value=zhangsan)
SET name zhangsan
# 2. 取字符串
GET name  # 输出:zhangsan
# 3. 存哈希(用户信息)
HSET user:1 name lisi age 20
# 4. 取哈希的某个字段
HGET user:1 age  # 输出:20
# 5. 给计数器加1
INCR view:article:1001  # 文章1001的阅读量+1
# 6. 设置过期时间(10秒后失效)
SET code 123456 EX 10
2. Python 代码操作 Redis(需先装 redis 库)

python

运行

复制代码
import redis

# 连接Redis(默认本地、端口6379)
r = redis.Redis(host='localhost', port=6379, db=0, decode_responses=True)

# 存/取字符串
r.set('name', 'zhangsan')
print(r.get('name'))  # 输出:zhangsan

# 存/取哈希
r.hset('user:1', mapping={'name': 'lisi', 'age': 20})
print(r.hget('user:1', 'age'))  # 输出:20

# 计数器+1
r.incr('view:article:1001')
print(r.get('view:article:1001'))  # 输出:1

五、新手避坑点

  1. 别存太多数据:Redis 是内存数据库,内存满了会变慢,只存热点数据;
  2. 注意过期时间:缓存数据要设过期时间,避免数据和数据库不一致;
  3. 避免大 key:别存超大的字符串 / 列表(比如几 MB 的内容),会拖慢 Redis。

总结

  1. Redis 是内存优先 的数据库,核心优势是快,主打缓存、计数、分布式锁等场景;
  2. 支持字符串、Hash、List 等丰富数据类型,能适配多种业务需求;
  3. 新手使用重点关注 "数据持久化" 和 "过期时间",避免数据丢失或不一致。
相关推荐
QYRdata2 分钟前
年复合增长率8.2%!2026-2032年数据库开发服务赛道增长动能持续释放
数据库·服务发现·数据库开发·恒州博智
坊钰3 分钟前
【LangGraph框架入门级】12. 人机交互:interrupt 中断与 Command 恢复
开发语言·数据库·python·人机交互·ai编程·langgraph
龙腾AI白云9 分钟前
世界模型与智能体协同推理逻辑
大数据·数据库·知识图谱·pygame
思考着亮12 分钟前
1.Redis 基础知识
redis
牛战士coding18 分钟前
Java 对象写入 Redis 后类型变了?Jackson 多态序列化问题复盘
java·开发语言·redis
ben9518chen19 分钟前
数据库系统概述
数据库
xiaoqiMikko23 分钟前
Redis 实战(基础篇):把一个老 RedisUtil 搬到 Spring Boot 4,一路踩出来的坑(真机实测)
java·spring boot·redis
花间相见25 分钟前
【计算基础|MySQL03】【上手】多表查询与聚合
数据库·mysql
小羊没烦恼!37 分钟前
T-SQL查询高级—SQL Server索引中的碎片和填充因子
开发语言·前端·javascript·数据库·后端·python·web安全