Redis

一、Redis 是什么?

RedisRe mote Di ctionary S erver)是一个开源的、基于内存的键值存储系统 。它通常被用作数据库缓存消息中间件流引擎

核心特点:
  1. 基于内存 :数据主要存储在内存中,读写速度极快(可达 10万+次/秒)。同时也支持持久化,可以将内存数据异步保存到磁盘,防止数据丢失。

  2. 键值存储:使用简单的 key-value 形式存储数据,但 Value 不仅仅是字符串,还支持丰富的数据结构。

  3. 单线程:核心网络模型是单线程的(新版本引入了多线程处理网络 I/O 等,但核心命令执行仍是单线程),避免了多线程的上下文切换和竞争条件,保证了原子性操作,非常简单高效。

  4. 持久化:提供 RDB(快照)和 AOF(追加日志)两种方式将数据持久化到硬盘。

  5. 高可用与分布式:通过 Redis Sentinel(哨兵)实现高可用,通过 Redis Cluster(集群)实现数据分片和分布式存储。


二、Redis 的常用数据结构

这是 Redis 最强大的地方。它不仅仅是简单的 String 缓存,其多样的数据结构解决了各种特定场景下的问题。

数据结构 存储的值 特性 常用命令 典型应用场景
String(字符串) 可以是字符串、整数、浮点数、二进制数据 最基本的数据类型,一个 key 对应一个 value SET, GET, INCR, DECR, MSET, MGET 缓存计数器 (文章阅读量、点赞)、分布式锁
Hash(哈希) field-value 对的集合,适合存储对象 类似于 Java 中的 Map<String, String> HSET, HGET, HGETALL, HMSET, HINCRBY 存储对象信息(用户信息、商品信息),可单独修改某个字段
List(列表) 一个有序的字符串列表,按插入顺序排序 双向链表,两端操作性能高,中间操作性能低 LPUSH, RPUSH, LPOP, RPOP, LRANGE 消息队列最新列表 (最新文章、朋友圈时间线)、排行榜
Set(集合) 无序的、不重复的字符串集合 提供交集、并集、差集等操作

三、为什么选择 Redis?

  • 性能极高:内存访问速度远超磁盘。

  • 数据结构丰富:如上所述,一招鲜吃遍天,各种场景都能找到合适的数据结构。

  • 原子性:所有操作都是原子性的,无需担心并发问题。

  • 多功能性:不仅是缓存,还能做消息队列、分布式锁、排行榜等。

相关推荐
右耳朵猫AI20 分钟前
Python周刊2026W38 | 标准流编码修复、PEP 845/846 草案、解析器提速 10%、集合字典二次复杂度
python·ai·数据科学
zjxtxdy21 分钟前
SPI通信协议
笔记·单片机
微软技术分享24 分钟前
大模型网络结构:模型接口测试用例参考
python
Bruce_Liuxiaowei2 小时前
Python 实例赋值遮蔽类属性:一个从不报错的静默陷阱
开发语言·python·语法糖
做运维的阿瑞2 小时前
Python 标准库汇总:分类速览与常用模块清单
linux·运维·python
why-geo2 小时前
Hermes Agent 与 Python 的会产生什么样的碰撞
人工智能·python·ai编程
正经教主2 小时前
【FDE系列】阶段2:Day 29:FastAPI 进阶 — Pydantic 模型与完整 CRUD 实战
人工智能·python·fde
gCode Teacher 格码致知2 小时前
Pandas教学-6:coerce详解
python·pandas
梦在远山后2 小时前
Electron 与 FastAPI 如何完成流式 Agent 对话
python·langchain·agent
彧azz2 小时前
Linux 网络编程学习总结
linux·网络·笔记·学习·面试