首页数据显示-添加 redis 缓存(1) | 学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习 首页数据显示-添加 redis 缓存(1)

开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot)首页数据显示-添加 redis 缓存(1)】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/667/detail/11435


首页数据显示-添加 redis 缓存(1)


内容简介

一、Spring Boot 缓存注解

二、Common 的 pum 文件引入


现在用 redis 把首页数据添加到页面中去

首先需要添加依赖

<--redis-->

< dependency >

<groupId>org.  springframework . boot</groupId>

<artifact Id>spring-boot-starger-data-redis</ artifactld >

</ dependency >

<1--spring2.X集成redis所需common-pool2-->

cdependency >

<groupsd>org. apache/commons</groupId>

=kartifact Id>commons-pool2</artifact Id)

<version>2.6.0</version>

</ dependency >

有了依赖之后,我们可以在里边创建一个 cinfiguration,缓存一个配置类,代码就是两个插件,一个是做缓存的一个是做缓存管理的,里边主要用到 redis,用注解实现

在接口中添加redis缓存

由于首页数据变化不是很频繁,而且首页访问量相对较大,所以我们有必要把首页接口数据缕存到 redis 缕存中,减少数据库压力和提高访问速度。

改造 service-cms 横块首页 banner 接口,首页课程与讲师接口类似


一、Spring Boot 缓存注解

1、缓存@Cacheable

根据方法对其返回结果进行缓弃,下次请求时,如果缓弃存在,则直接读取缓存数据返回;如果缓存不存在,则执行方法,并把返回的结果存入缓存中,一般用在香询方法上

第一步,创建redis配置类,写道 common 里面

1)引入 springboot 整合 redis 相关依赖

2)创建 redis 缓存配置类,配置插件

<!-redis-->

<dependency >

<groupId>org.  springframework . boot</groupId>

( artifactld  spring-boot-starter-data-redis(/artifactl/ dependency )

<!--spring2.X集成redis所需common-pool2->

<dependency >

<group Id>org=apache/commons/groupId

</artifactId >commons=poo12</ artifactld >

<version>2.6.0</version>

这个依赖经常会下载失败,直接复制就可以了。


二、Common pum 文件引入

package com atguigu,  servicebase ;

Importorg, springframework ,cache, annotation , CachingConfigurerSupport

Importorgspringframework

, cache.  annotation , EnableCaching .

importorg.springframework. context, annotation .  Configuration .

@EnableCaching //开启缓存

@ Configuration //配置类

public class  RedisConfig  extends  CachingConfigurerSupport

引入两个插件,里边不需要改什么,直接复制即可,限制时间,超过600数据就没有了。

Banner 找到方法

//查询所有 banner

@ GetNapping (" getA1lBanner ")

pxblic  RgetAllBanner ()(

List<CrmBanner) list= bannerService . select AllBanner().

return R. ok(). data("list", list);

1、缓存@Cacheable

根据方法对其返回结果进行缓弃,下次请求时,如果缓弃存在,则直接读取缓存数据返回;如果缓存不存在,则执行方法,并把返回的结果存入缓存中,一般用在香询方法上。

三个注解:

Value 缓存名,必填,它指定了你的缓存存放在哪块命名空间

cacheNames  value 差不多,二选一即可

Key 可选属性,可以使用 SpEL 标签自定义缓存的 key

可以把注解加到方法上,方法上加属性控制基本操作

第二步  

在查询所有 banner 的方法上面添加缓存注解@Cacheable

第一次查询,首先查询数据库,把数据库查询数据返回,并且返回数据到缓存中

第二次查询,查询缓存,发现缓存有数据,直接返回

如图所示

image.png

2、缓存@CachePut

使用该注解标志的方法,每次都会执行,并将结果存入指定的缓存中。其他方法可以直接从响应的缓存中读取暖存数据,而不需要再去查询数据库。一般用在新增方法上。

三个注解:

Value  缓存名,必填,它指定了你的缓存存放在哪块命名空间

cacheNames   value 差不多,二选一即可

Key  可选属性,可以使用 SpEL 标签自定义缓存的 key

3、缓存@ CacheEvict

使用该注解标志的方法,会清空指定的缓存。一般用在更新或者删除方法上

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
存储 缓存 NoSQL
解决Redis缓存数据类型丢失问题
解决Redis缓存数据类型丢失问题
181 85
|
19天前
|
存储 缓存 NoSQL
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
云端问道21期方案教学-应对高并发,利用云数据库 Tair(兼容 Redis®*)缓存实现极速响应
|
19天前
|
缓存 NoSQL 关系型数据库
云端问道21期实操教学-应对高并发,利用云数据库 Tair(兼容 Redis®)缓存实现极速响应
本文介绍了如何通过云端问道21期实操教学,利用云数据库 Tair(兼容 Redis®)缓存实现高并发场景下的极速响应。主要内容分为四部分:方案概览、部署准备、一键部署和完成及清理。方案概览中,展示了如何使用 Redis 提升业务性能,降低响应时间;部署准备介绍了账号注册与充值步骤;一键部署详细讲解了创建 ECS、RDS 和 Redis 实例的过程;最后,通过对比测试验证了 Redis 缓存的有效性,并指导用户清理资源以避免额外费用。
|
2月前
|
缓存 NoSQL Redis
Redis经典问题:数据并发竞争
数据并发竞争是大流量系统(如火车票系统、微博平台)中常见的问题,可能导致用户体验下降甚至系统崩溃。本文介绍了两种解决方案:1) 加写回操作加互斥锁,查询失败快速返回默认值;2) 保持多个缓存备份,减少并发竞争概率。通过实践案例展示,成功提高了系统的稳定性和性能。
|
2月前
|
缓存 监控 NoSQL
Redis经典问题:数据不一致
在使用Redis时,缓存与数据库数据不一致会导致应用异常。主要原因包括缓存更新失败、Rehash异常等。解决方案有:重试机制、缩短缓存时间、优化写入策略、建立监控报警、定期验证一致性、采用缓存分层及数据回滚恢复机制。这些措施可确保数据最终一致性,提升应用稳定性和性能。
|
2月前
|
缓存 监控 NoSQL
Redis经典问题:缓存穿透
本文详细探讨了分布式系统和缓存应用中的经典问题——缓存穿透。缓存穿透是指用户请求的数据在缓存和数据库中都不存在,导致大量请求直接落到数据库上,可能引发数据库崩溃或性能下降。文章介绍了几种有效的解决方案,包括接口层增加校验、缓存空值、使用布隆过滤器、优化数据库查询以及加强监控报警机制。通过这些方法,可以有效缓解缓存穿透对系统的影响,提升系统的稳定性和性能。
|
3月前
|
缓存 NoSQL PHP
Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出
本文深入探讨了Redis作为PHP缓存解决方案的优势、实现方式及注意事项。Redis凭借其高性能、丰富的数据结构、数据持久化和分布式支持等特点,在提升应用响应速度和处理能力方面表现突出。文章还介绍了Redis在页面缓存、数据缓存和会话缓存等应用场景中的使用,并强调了缓存数据一致性、过期时间设置、容量控制和安全问题的重要性。
62 5
|
存储 缓存 NoSQL
Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存|学习笔记
快速学习 Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存
Spring Boot2.5 实战 MongoDB 与高并发 Redis 缓存|学习笔记
|
缓存 NoSQL 安全
6.0Spring Boot 2.0实战 Redis 分布式缓存6.0|学习笔记
快速学习6.0Spring Boot 2.0实战 Redis 分布式缓存6.0。
354 0
6.0Spring Boot 2.0实战 Redis 分布式缓存6.0|学习笔记
|
缓存 NoSQL Redis
首页数据显示-添加 redis 缓存(3)| 学习笔记
快速学习 首页数据显示-添加 redis 缓存(3)
164 0
首页数据显示-添加 redis 缓存(3)| 学习笔记