Redis

一、Redis 是什么?

Redis (Re 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?

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

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

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

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

相关推荐
第九序言T8 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
Java后端的Ai之路8 小时前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
qq_426003968 小时前
UI自动化高频次登录login限流解决方案
python·ui·自动化
Sakura_j_h_9 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
龙亘川9 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人9 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
quantdash_cc10 小时前
如何验证历史行情的交易日期是否完整覆盖研究区间?
python·数据分析·pandas·量化交易·股票数据·quantdash
I Am a robert girl10 小时前
当智能体学会“串通”:从长程交互中读懂涌现式合谋
python·多智能体系统·多智能体协作·llm agent·涌现式合谋·对齐问题·激励机制设计
Raas10010 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
云和数据.ChenGuang10 小时前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain