浅谈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)。
相关推荐
用户3169353811832 天前
Java连接Redis
redis
倔强的石头_2 天前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab3 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence3 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神3 天前
三、用户与权限管理
数据库·mysql
小小工匠4 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化
麦聪聊数据4 天前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_4 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡4 天前
【MySQL数据库】数据类型与表约束
数据库·mysql
ofoxcoding4 天前
在AI API聚合平台配置DeepSeek V3.2提示词缓存实战:快速接入与成本优化指南
人工智能·spring·缓存·ai