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?

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

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

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

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

相关推荐
QxQ么么20 小时前
移远通信(桂林)26校招-助理AI算法工程师-面试纪录
人工智能·python·算法·面试
执笔论英雄21 小时前
Slime异步原理(单例设计模式)4
开发语言·python·设计模式
('-')1 天前
《从根上理解MySQL是怎样运行的》第十章学习笔记
笔记·学习·mysql
e***74951 天前
Modbus报文详解
服务器·开发语言·php
hd51cc1 天前
MFC学习笔记 对话框
笔记·学习·mfc
lly2024061 天前
ASP 发送电子邮件详解
开发语言
小徐敲java1 天前
python使用s7协议与plc进行数据通讯(HslCommunication模拟)
开发语言·python
likuolei1 天前
XSL-FO 软件
java·开发语言·前端·数据库
6***37941 天前
PHP在电商中的BigCommerce
开发语言·php
猫头虎1 天前
如何解决 pip install 编译报错 fatal error: hdf5.h: No such file or directory(h5py)问题
人工智能·python·pycharm·开源·beautifulsoup·ai编程·pip