浅谈Redis(1)

一.Redis是什么

redis是基于内存持久化键值型非关系型 数据库

二.Redis的特性

1.高性能内存读写

数据主要存储在内存中,内存读写速度远高于磁盘,具备超高并发处理能力。

2.完善的持久化机制

为了解决内存断电,进程退出导致内存数据丢失,redis提供了两种持久化方案

1.RDB:以快照的形式定期将全量数据写入到磁盘

2.AOF:记录下每一条执行的命令,数据丢失的风险更低

3.多样化的数据结构支持

这里指的多样化的数据结构支持,指的是key-value中的value,不是key(key的数据结构是String),value支持String,Hash,List,Set,Sorted Set等数据结构

4.灵活的内存管理策略

支持为 Key 设置过期时间,到期自动删除;同时提供多种内存淘汰策略,内存达到上限时自动清理冷数据。

5.支持主从复制

采用一主多从架构,主节点负责处理写请求,从节点实时同步主节点数据、承接读请求。既实现数据热备份,也能通过读写分离提升整体吞吐量。

6.内置丰富的附加功能

支持事务,Lua脚本,发布订阅等能力,可实现批量操作,自定义业务逻辑与简易消息,扩展性强

三.Redis快的原因(与mysql相比)

1.redis直接从内存中读数据,而mysql从硬盘中读数据

2.redis的核心功能逻辑简单,直接对内存中的数据进行简单操作,而mysql业务逻辑复杂

3.从网络的角度,redis使用了IO多路复用的方式

4.redis采用单线程模型,避免了多线程的竞争的开销

四.Redis采用单线程的原因以及弊端

原因: redis的核心业务逻辑都是短平快的,不会消耗太多的cpu资源,用单线程就能解决,没有必要引入多线程(引入多线程会带来线程之间竞争的开销)

补充说明:Redis 6.0 及以上版本引入多线程处理网络 IO,但命令执行依旧保持单线程,核心设计思想未改变。

弊端: 所有命令串行执行,一旦执行耗时较长的命令,会阻塞后续所有请求,引发服务卡顿,因此业务中需严格避免大键、慢命令。

五.使用场景

  1. 作为数据库

Redis 支持 RDB/AOF 持久化,可替代传统数据库存储体量小、读写极频繁的数据:

  • 场景:用户临时状态、配置信息、积分、排行榜、计数数据
  • 优势:读写性能远高于关系型数据库,架构简单。
  1. 作为缓存(最主流用法)
  • 核心作用:缓存热点数据,拦截大部分查询请求,减轻 MySQL 压力,提升接口响应速度。
  • 常见细分场景:
    • 全量缓存:商品详情、首页 banner、基础字典数据
    • 会话缓存:登录 token、用户会话信息
    • 计算结果缓存:接口返回数据、复杂统计结果
    • 衍生能力:分布式锁、接口限流、布隆过滤器防穿透
  1. 作为消息队列

利用 List 数据结构实现简易消息队列,满足轻量级异步需求:

  • 核心作用:业务解耦、流量削峰、异步处理非核心流程
  • 场景:日志上报、简单任务分发、异步通知、订单后续附属操作
  • 补充:仅适用于低要求、轻量级场景;高可靠、高吞吐场景建议使用专业 MQ(RabbitMQ/RocketMQ)。
相关推荐
闻道且行之5 小时前
图片处理助手|泊松融合原理 + C++ 工程实现,seamlessClone 三模式一次讲透
数据库·c++·人工智能·opencv
夏炳辉.6 小时前
PostgreSQL 高可用集群核心配置参数全解:从原生流复制到 Patroni 企业级方案
数据库·postgresql
努力的小雨7 小时前
KES 开启 SSL 前,证书、端口和客户端要一起验
数据库
DevOps老兵7 小时前
AI全栈知识07:向量数据库 - Milvus/Chroma实战
数据库·ai·milvus
这个DBA有点耶7 小时前
当数据库从“存储”走向“决策”:金仓数据库的融合架构之路
数据库·架构·aigc
smilejingwei7 小时前
Trae+SQLazy 实践 SQL 国产化移植:Oracle => 达梦
数据库·sql·oracle
意疏8 小时前
2026年远控软件安全横评:六款主流工具逐项核查——官方文档、一手实测与安全事件,全摊开
大数据·前端·数据库
名不经传的养虾人9 小时前
从0到1:企业级AI项目迭代日记 Vol.90|Agent变快了,Judge定下来了
大数据·数据库·人工智能·ai编程·企业ai
冰之杍9 小时前
MySQL utf8mb3 → utf8mb4 完整修改方案
数据库·mysql