当前位置: 首页 > news >正文

redis -- redis介绍,性能(与mysql性能对比),使用场景,CAP介绍

目录

redis

介绍

性能

性能对比分析

基于内存 vs 基于磁盘

单线程 vs 多线程

高效数据结构

更少的功能负担

无磁盘 I/O 延迟

响应快,延迟低

使用场景 

CAP


redis

介绍

Redis是一种开源的基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快

Redis提供了多种数据类型来支持不同的业务场景 -- String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图)、HyperLogLog(基数统计)、GEO(地理信息)、Stream(流)

  • 因为执行命令由单线程负责,不存在并发竞争的问题,所以redis中对数据类型的操作都是原子性的

除此之外,Redis还支持事务、持久化、Lua脚本、多种集群方案(主从复制模式、哨兵模式、切片集群模式)、发布/订阅模式,内存淘汰机制、过期删除机制等高级功能

性能

redis比mysql快很多

单台设备的Redis的QPS(Query Per Second,每秒钟处理完请求的次数)是MySQL的10倍

  • Redis单机的QPS能轻松破10w,而MySQL单机的QPS很难破1w

但也不是说redis就可以完全替代mysql了

  • 和mysql相比,最大的劣势是存储空间有限

如果想要又大又快,可以将redis和mysql结合起来使用,也就是让redis作为mysql的缓存

  • 二八原则 -- 只要缓存20%的热点数据,就能满足80%的访问需求
  • 但这样会使系统复杂度提升,数据修改后涉及到mysql和redis的数据同步问题

性能对比分析

可以从 架构层面、存储介质、设计目标、功能开销 四个方面来分析

基于内存 vs 基于磁盘
  • Redis:数据都存储在内存中,访问延迟一般为微秒级(<1ms)

  • MySQL:数据存储在磁盘/SSD 中,访问延迟为毫秒级(1~10ms)

  • 内存读写比磁盘 I/O 快几个数量级,这是最根本的差距

单线程 vs 多线程
  • Redis 单线程处理客户端请求,避免了上下文切换和加锁带来的性能损耗(所有操作原子执行,线程安全)

  • MySQL 多线程(InnoDB 等存储引擎)需要加锁、事务隔离、调度等复杂操作

高效数据结构
  • Redis 的底层使用高度优化的数据结构,如压缩列表,哈希表,跳表等(数据结构是为特定场景优化的)

  • 而 MySQL 使用的是通用的 B+ 树存储结构,操作复杂度更高

更少的功能负担
  • Redis 是 K-V 存储(NoSQL),专注于缓存、简单计算等高性能场景

  • MySQL 是关系型数据库,具备 ACID、事务、SQL 解析、查询优化器、表关联、索引维护等复杂逻辑,性能损耗大

无磁盘 I/O 延迟
  • Redis 所有数据都在内存中,只有在持久化(RDB/AOF)或异步备份时才涉及磁盘

  • MySQL 每次更新都要写 redo log、undo log、binlog、buffer pool 等多个组件

响应快,延迟低
  • Redis 使用 epoll + 单线程事件循环模型,没有上下文切换、没有线程调度,效率非常高

  • 请求处理简单,没有复杂的 SQL 解析、事务锁、优化器、执行计划等过程,请求来了就直接查内存,结果原样返回,几乎没有多余的逻辑,响应延迟非常低

使用场景 

  • redis的初心本来是实现消息队列中的消息中间件,也就是实现分布式系统喜爱的CP模型(保证一致性和可用性)
  • 但很少会直接使用redis作为消息中间件,因为有其他更好的产品 -- 复杂或高并发场景推荐用 Kafka、RabbitMQ、RocketMQ

CAP

CAP 理论是分布式系统中的一个基本理论 -- 在一个分布式系统中,最多只能同时满足以下三个中的两个:

  • 其中,P是一定要有的

分布式部署下(比如主从、哨兵、集群),Redis 更偏向于 CP:

  • 也就是说,Redis宁可短暂不可用,也要保证数据一致

相关文章:

  • gravity`(控制 View 内部内容的对齐方式)
  • Hikyuu C++与Python层交互机制
  • Vue 3中的setup【与Vue 2的区别】
  • 深度学习--深度学习概念、框架以及构造
  • GIT工具学习【1】:新安装git预操作
  • candence17.4原理图编号
  • 你了解哪些Java限流算法?
  • 深入解析操作系统的文件系统:从存储介质到数据管理的核心引擎
  • 猿辅导集团推首个教育AI范式小猿AI 聚焦家校应用场景发布3款新品
  • VGA显示
  • 【euclid】10.2 2D变换模块(transform2d.rs)Arbitrary trait
  • 蓝桥杯嵌入式十六届赛前复习总结与准备
  • linux运维篇-Ubuntu(debian)系操作系统创建源仓库
  • 基本元器件—电阻器(2025.4.14)
  • 实现表单验证
  • YOLOv2 快速入门与核心概念:更快、更准的目标检测利器
  • tap交换机配置步骤
  • 详解最大公约数做法
  • 数据结构作业
  • vue2中基于el-select封装一个懒加载下拉框
  • 五一假期出行预订进入高潮:酒店搜索热度翻倍,“请4休11”拼假带动长线游
  • 接续驰援,中国政府援缅卫生防疫队出发赴缅
  • 美国税局代理局长卷入马斯克与美财长之争,还未工作就被迫离职
  • 大理州工业投资(集团)有限公司党委副书记、副总经理赵云接受审查调查
  • 上海一季度人民币贷款增4151亿,住户存款增3134亿
  • 女子报警称醉酒后疑似被性侵,长沙警方:嫌犯邱某某已被刑拘