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?

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

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

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

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

相关推荐
liuyicenysabel17 小时前
大模型学习笔记 · 第八篇 · 进阶:偏好对齐与多卡训练
人工智能·笔记·学习
2zcode17 小时前
基于MATLAB图像处理的饮料瓶灌装液位检测系统设计与实现
开发语言·图像处理·matlab
万亿少女的梦16817 小时前
基于Python的高考志愿填报辅助系统设计与实现
java·spring boot·python·mysql·vue
必须得开心呀18 小时前
QT解决中文乱码问题
开发语言·qt
闲猫19 小时前
Python FastAPI + SQLAlchemy 入门教程:从零搭建你的第一个 Web 应用
前端·python·fastapi
这不小天嘛19 小时前
JAVA八股——redis篇
java·开发语言·redis
番茄育学园20 小时前
我的三款主流云存储音乐库实测笔记
笔记·分类·媒体
逝水无殇20 小时前
C# 字符串(String)详解
开发语言·后端·c#
精明的身影21 小时前
C++自学之路1:Hello world
开发语言·c++
leo__52021 小时前
基于导航数据的扩展卡尔曼滤波(EKF)MATLAB 实现
开发语言·matlab