Redis学习-基础

Redis 是一个高性能的 key-value 存储系统,适用于分布式缓存。其丰富的数据类型包括字符串、列表、哈希、集合和有序集合,支持事务和过期时间设置。常见应用场景包括缓解高并发压力、存储对象以及实现分布式锁。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.Redis 简介

Redis(Remote Dictionary Server)是一个使用 ANSI C 语言编写的开源 key-value 存储系统。它具备以下特点:

  • 高性能:阿里云 Redis 1C 1GB 主从版能够提供 80000 QPS 的吞吐量。
  • 数据类型丰富:string、list、set、zset(sorted set)、hash。
  • 原子:Redis 的所有操作都是原子性的,意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务,即原子性,通过 MULTI 和 EXEC 指令包起来。
  • 高级特性支持:支持按 key 设置过期时间,public / subscribe,通知,集群化等等特性。

因为具备以上特性,Redis 在工程项目中通常被作为分布式缓存使用。

二.Redis 应用场景

因为每个客户端请求的时间不一样,可能导致某个时间请求量巨大,某个时间请求量很少, 导致请求大的时候无法正常处理事务。

Redis 会将请求量大的时间段的请求放入一个队列中,让这些请求依次处理,这样空闲的时间也可以处理这些请求,缓解压力。

三.Redis 数据类型

1.String(字符串)

  • string 是 redis 的最基本的类型,一个 key 对应一个 value。
  • string 类型是二进制安全的。意思时 redis 的 string 可以包含任何数据。简单的如文本、数字、日期,复杂的如 jpg 图片或者序列化的对象,都可以支持。
  • string 类型是 redis 最基本的数据类型,string 类型的值最大可以存储 512 MB。

2.List(列表)

  • Redis List 是简单的字符串列表,按照插入顺序排序。
  • 可以从列表的头部(左边)或者尾部(右边)进行元素的添加、获取和删除操作。
  • 列表最多可以存储 2^32 - 1 个元素(4294967295,每个列表可存储40多亿)

3.Hash(哈希)

  • Redis hash 是一个键值(key => value)对集合。
  • Redis hash 是一个 string 类型的 field 和 value 的映射表,hash 特别适合用于存储对象

4.Set(集合)

  • Redis set 是 string 类型的无序集合。集合中成员是唯一的,不能出现重复的数据。
  • 集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

5.Sorted Set(有序集合)

Redis 有序集合是一种特殊类型的集合,集合中每个元素都会关联一个 double 类型的分数。集合中的成员按分数自动进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复。

四.Redis 高级特性 - 事务

Redis 支持事务特性,可以用事务机制保证一组命令要么全部执行,要么都不执行。

Redis 事务相关命令:

  • MULTI:开启事务,redis 会将后续的命令逐个放入队列中,然后使用 EXEC 命令来原子化执行这个命令系列。
  • EXEC:执行事务中的所有操作命令。
  • DISCARD:取消事务,放弃执行事务块中的所有命令。
  • WATCH:监视一个或多个key,如果事务在执行前,这个 key(或多个 key)被其他命令修改,则事务被中断,不会执行事务中的任何命令。
  • UNWATCH:取消 WATCH 对所有 key 的监视。

五.Redis 使用案例 - 分布式锁

  • 在并发操作竞争性资源时,我们都只知道需要加锁以保证正确性。对于单机应用,直接使用本地锁(java 的 synchronized,ReentrantLock)就可以避免。
  • 如果是多级部署的应用(一套代码,多机部署),本地锁派补上用场,这时就可以引入分布式锁来解决。

本文章整理自上课 PPT,仅供学习使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

什巳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值