浅谈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)。
相关推荐
记忆停留w6 小时前
从单体到微服务:Redis 协同 MySQL、Milvus、MinIO 搭建企业级RAG/AI Agent脚手架架构
大数据·人工智能·redis·微服务·ai·架构·milvus
小二·6 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手6 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌6 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存
蓝天下的守望者7 小时前
svt_apb_if里的宏定义问题
运维·服务器·数据库
上海云盾-小余7 小时前
网站频繁遭遇 SQL 注入溯源与原生漏洞修复全流程总结
数据库·sql
数据库小学妹7 小时前
国家区域医疗中心国产化改造实战:数据库选型、跨院区数据互通与踩坑经验
数据库·国产数据库·数据库选型·医疗信息化·信创数据库·医疗信创
AllData公司负责人9 小时前
数据库同步平台|AIIData数据中台实现OceanBase、达梦数据库、OpenGauss、人大金仓、Hive、TDengine 一键接入Doris
大数据·数据库·hive·mysql·oceanbase·tdengine
2603_954708319 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全