高并发分布式缓存 Redis6.0(一)|学习笔记

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 快速学习高并发分布式缓存 Redis6.0(一)

开发者学堂课程【Java Spring Boot 2.6.0开发实战-1024程序员节创造营公益课高并发分布式缓存 Redis6.0(一)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/903/detail/14342


高并发分布式缓存 Redis6.0(一)


目录:

一, 三层架构+高并发缓存 Redis 视图

二, Java Spring Data 2.x for Redis 新特性

三, Redis API

四, RedisConnection 解析

五, Java Spring Data for Redis 架构

六, Redis Template

七, Linux 安装 Redis 6.2

八, Redis 配置文件修改允许远程链接

九, 实战演练

十,高级面试题

 

前言:

Redis6.0 主要应用于高并发场景,如秒杀双十一场景时就应用到了该技术。

Redis 给予内存来存储数据的,所以比磁盘存储的速度要快很多。但是也根据业务场景来确定。

 

一, 三层架构+高并发缓存 Redis 视图

Spring Data Redis6.0

image.png

image.png

二,Java Spring Data 2.x for Redis 新特性

1.支持多种 Redis 驱动程序/连接器的低级抽象(Jedis 和 Lettuce。JRedis 和 SRP 过期)

2.Spring Data Access exception和Redis driver exceptions 转换

3. RedisTemplate 高级抽象封装 Redis 操作,异常转换和序列化工作

4.Pubsub 发布订阅模式支持(例如消息驱动 POJO的MessageListenerContainer)

5.支持 Red is Sentinel 和 Redis Cluster 集群模式

6.JDK,String,JSON和Spring Object/ XML 映射序列化器

7.基于 Redis 的 JDK Collection 实现

8.Atomic counter 原子计数器

9.Sorting and Pipelining 功能

10.专门 API 支持 SORT,SORT / GET 模式和返回批量值数据

11.Redis实现了 Spring 3.1缓存抽象

12自动实现 Repository 接口,@EnableRedisRepositories 支持自定义查找方法

13.支持存储库的 CDI

 

三,Redis API

l org.springframework.data.redis.connection包

l RedisConnection

l RedisConnectionFactory Interface


四,RedisConnection 解析

1. RedisConnection 为 Redis 通信提供核心组件

2.处理与 Redis 服务器后端的通信。

3.自动将底层连接异常转换为 Spring DAO 异常

4.可以在不更改任何代码的情况下切换连接器,

5.操作语义保持不变。

6.统一接口

7.工厂模式

8.仓储模式

 

五, Java Spring Data for Redis 架构示意图

image.png

 

六,Redis Template

lnterface

Description

GeoOperations

Redis geospatial 操作,例如GEOADD, GEORADIUS,...

HashOperations

Redis hash 操作

HyperLogLogOperations 

Redis HyperLogLog ,例如PFADD, PFCOUNT..….

ListOperations

Redis list 操作

SetOperations

Redis set 操作

ValueOperations

Redis string (or value)操作

ZSetOperations

Redis zset (or sorted set)操作

 

七,Linux安装Redis 6.2

l 下载安装

l $ wget https://download.redis.io/releases/redis-6.2.1.tar.gz.、

l $tar xzf redis-6.2.1.tar.gz

l $ cd redis-6.2.1

l $make

l 2.启动服务器

l $ src/redis-server

·3.启动命令客户端

l $ src/redis-cli

l 4.新增查询 Key value.redis> set 1 java

OK

redis> get 1"java"

Linux 下启动 Redis Server

image.png

必要条件:

1.Linux

2.  Redis 2.6 or above

3. Jedis or Lettuce

4.Jedis 在实现上是直连 redis server,多线程环境下非线程安

全,除 非使用连接池,为每个 redis 实例增加物理连接。

5. Lettuce 是一种可伸缩,线程安全,完全非阻塞的 Redis 客户

端,多个线程可以共享一个 RedisConnection,它利用 NettyNIO 框架来高效地管理多个连接,从而提供了异步和同步数据访问方式,用于构建非阻塞的反应性应用程序。

 

八,Redis 配置文件修改允许远程链接

l 配置文件 redis.conf,

l 绑定本机地址: bind 127.0.0.1

l 注释掉# bind 127.0.0.1

l 或者修改为

l bind 0.0.0.0

相关文章
|
5月前
|
缓存 NoSQL 关系型数据库
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
美团面试:MySQL有1000w数据,redis只存20w的数据,如何做 缓存 设计?
|
14天前
|
存储 缓存 NoSQL
Redis专题-实战篇二-商户查询缓存
本文介绍了缓存的基本概念、应用场景及实现方式,涵盖Redis缓存设计、缓存更新策略、缓存穿透问题及其解决方案。重点讲解了缓存空对象与布隆过滤器的使用,并通过代码示例演示了商铺查询的缓存优化实践。
84 1
Redis专题-实战篇二-商户查询缓存
|
5月前
|
缓存 NoSQL Java
Redis+Caffeine构建高性能二级缓存
大家好,我是摘星。今天为大家带来的是Redis+Caffeine构建高性能二级缓存,废话不多说直接开始~
721 0
|
14天前
|
缓存 NoSQL 关系型数据库
Redis缓存和分布式锁
Redis 是一种高性能的键值存储系统,广泛用于缓存、消息队列和内存数据库。其典型应用包括缓解关系型数据库压力,通过缓存热点数据提高查询效率,支持高并发访问。此外,Redis 还可用于实现分布式锁,解决分布式系统中的资源竞争问题。文章还探讨了缓存的更新策略、缓存穿透与雪崩的解决方案,以及 Redlock 算法等关键技术。
|
4月前
|
缓存 NoSQL 算法
高并发秒杀系统实战(Redis+Lua分布式锁防超卖与库存扣减优化)
秒杀系统面临瞬时高并发、资源竞争和数据一致性挑战。传统方案如数据库锁或应用层锁存在性能瓶颈或分布式问题,而基于Redis的分布式锁与Lua脚本原子操作成为高效解决方案。通过Redis的`SETNX`实现分布式锁,结合Lua脚本完成库存扣减,确保操作原子性并大幅提升性能(QPS从120提升至8,200)。此外,分段库存策略、多级限流及服务降级机制进一步优化系统稳定性。最佳实践包括分层防控、黄金扣减法则与容灾设计,强调根据业务特性灵活组合技术手段以应对高并发场景。
1042 7
|
5月前
|
消息中间件 缓存 NoSQL
基于Spring Data Redis与RabbitMQ实现字符串缓存和计数功能(数据同步)
总的来说,借助Spring Data Redis和RabbitMQ,我们可以轻松实现字符串缓存和计数的功能。而关键的部分不过是一些"厨房的套路",一旦你掌握了这些套路,那么你就像厨师一样可以准备出一道道饕餮美食了。通过这种方式促进数据处理效率无疑将大大提高我们的生产力。
186 32
|
5月前
|
缓存 NoSQL Java
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
108 5
Redis:现代服务端开发的缓存基石与电商实践-优雅草卓伊凡
|
5月前
|
NoSQL 算法 安全
redis分布式锁在高并发场景下的方案设计与性能提升
本文探讨了Redis分布式锁在主从架构下失效的问题及其解决方案。首先通过CAP理论分析,Redis遵循AP原则,导致锁可能失效。针对此问题,提出两种解决方案:Zookeeper分布式锁(追求CP一致性)和Redlock算法(基于多个Redis实例提升可靠性)。文章还讨论了可能遇到的“坑”,如加从节点引发超卖问题、建议Redis节点数为奇数以及持久化策略对锁的影响。最后,从性能优化角度出发,介绍了减少锁粒度和分段锁的策略,并结合实际场景(如下单重复提交、支付与取消订单冲突)展示了分布式锁的应用方法。
363 3
|
7月前
|
缓存 监控 NoSQL
Redis--缓存击穿、缓存穿透、缓存雪崩
缓存击穿、缓存穿透和缓存雪崩是Redis使用过程中可能遇到的常见问题。理解这些问题的成因并采取相应的解决措施,可以有效提升系统的稳定性和性能。在实际应用中,应根据具体场景,选择合适的解决方案,并持续监控和优化缓存策略,以应对不断变化的业务需求。
1293 29
|
6月前
|
人工智能 缓存 NoSQL
Redis 与 AI:从缓存到智能搜索的融合之路
Redis 已从传统缓存系统发展为强大的 AI 支持平台,其向量数据库功能和 RedisAI 模块为核心,支持高维向量存储、相似性搜索及模型服务。文章探讨了 Redis 在实时数据缓存、语义搜索与会话持久化中的应用场景,并通过代码案例展示了与 Spring Boot 的集成方式。总结来看,Redis 结合 AI 技术,为现代应用提供高效、灵活的解决方案。