Redis详解

Redis 的核心定义

Redis 的全称是 Re mote Di ctionary S erver(远程字典服务)。它是一个开源的、基于内存的 键值对存储系统

基于内存:所有数据主要存储在内存中,这使得它的读写速度非常快(通常达到微秒级别)。这是 Redis 高性能的根本原因。

键值存储:数据模型非常简单,通过一个唯一的 Key 来存取一个 Value。但这个 Value 不仅仅是字符串,它支持多种数据结构。

数据结构服务器:这是 Redis 最强大的地方。它不仅仅是简单的 Key-String,而是提供了丰富的数据类型,如 String(字符串)、List(列表)、Hash(哈希/字典)、Set(集合)、Sorted Set(有序集合)等。你可以对这些数据类型执行原子操作

Redis 的主要特性与优势

极致性能:内存访问 + 单线程架构(避免上下文切换和竞争条件)+ 高效数据结构 = 极高的吞吐量和极低的延迟。

丰富的数据结构:如前所述,这使得你可以直接将业务对象(如用户信息、商品列表、排行榜)映射到 Redis 的数据结构上,操作起来非常直观和高效。

持久化:虽然数据在内存,但 Redis 提供了两种持久化机制(RDB 和 AOF),可以将内存数据保存到磁盘,防止数据丢失。

高可用和分布式:通过 Redis Sentinel(哨兵)实现高可用,通过 Redis Cluster(集群)实现数据分片和横向扩展。

支持发布/订阅:可以作为轻量级的消息队列使用。

Redis 的典型使用场景

缓存:这是 Redis 最最主要的用途。将数据库中的热点数据缓存在 Redis 中,极大地减轻后端数据库的压力,提升应用响应速度。

会话存储:将用户会话(Session)存储在 Redis 中,特别适用于分布式 Web 服务,可以方便地实现会话共享。

排行榜:利用 Sorted Set 可以轻松实现实时排行榜功能。

消息队列:使用 List 的 LPUSH/BROP 命令可以实现简单的消息队列。还有更专业的 Stream 类型。

社交网络:使用 Set 可以实现关注、粉丝、共同好友等功能。

计数器:利用 String 的 INCR 命令可以实现高并发的阅读量、点赞数等计数功能。

相关推荐
MetaLite14 分钟前
SpringBoot防重复提交-加一把Redis锁就够吗
spring boot·redis·后端
小蒜学长24 分钟前
借助于大模型工具Cursor的中药材交易系统的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
Seraphina361 小时前
记一次实验:利用缓存服务器规范化技术进行网页缓存欺骗
经验分享·笔记·网络安全·缓存
底层玩家老张1 小时前
数据库上K8s,运维为什么反而更累了?从StatefulSet到Operator的复盘
数据库·kubernetes·operator·数据库运维·架构选型
Tisfy1 小时前
LeetCode 2058.找出临界点之间的最小和最大距离:遍历+遇到极值则更新(这种题谁空间复杂度不是O(1)啊)
linux·数据库·leetcode·链表·题解·模拟·遍历
数据库小学妹1 小时前
MySQL死锁排查:锁机制原理、死锁日志与information_schema定位
运维·数据库·mysql
2601_967338711 小时前
Text2SQL智能体基础到实战课程
数据库·oracle
CadeCode1 小时前
Oracle 逗号拼接字段处理
数据库·后端·性能优化
Sirens.1 小时前
MySQL数据库:视图
数据库·mysql
山岚的运维笔记2 小时前
mysql 专业笔记 -- 第 1 章:MySQL 入门
运维·数据库·笔记·后端·学习·mysql·dba