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 命令可以实现高并发的阅读量、点赞数等计数功能。

相关推荐
O***Z6164 分钟前
三分钟内快速完成MySQL到达梦数据库的迁移
数据库·mysql
友友马1 小时前
『QT』窗口 (一)
开发语言·数据库·qt
q***78371 小时前
SQL实现md5加密方法
数据库·sql
q***61411 小时前
Spring中Aware的用法以及实现
java·数据库·spring
红树林072 小时前
渗透测试之sql注入--报错注入
数据库·sql·安全·web安全
菜鸟小九2 小时前
mysql(锁)
数据库·mysql·oracle
c***42102 小时前
【Sql Server】随机查询一条表记录,并重重温回顾下自定义函数的封装和使用
数据库·性能优化
q***44813 小时前
PostgreSQL的备份方式
数据库·postgresql
v***59833 小时前
【SQL Server】超详细SQLServer日期转换、字符串、数学、聚合等常用函数大全(最新版)
数据库·sqlserver
q***23573 小时前
python的sql解析库-sqlparse
数据库·python·sql