Spring+Boot对Redis整合时,需要添加对应的依赖启动器是什么

Spring+Boot对Redis整合时,需要添加对应的依赖启动器是什么,第1张

在 Spring Boot 中使用 Redis,需要添加以下依赖启动器:

<dependency>

<groupId>orgspringframeworkboot</groupId>

<artifactId>spring-boot-starter-data-redis</artifactId>

</dependency>

这个依赖启动器包含了 Spring Data Redis 客户端库,可以方便地使用 Redis。

在添加了这个依赖启动器之后,需要在 `applicationproperties` 或 `applicationyml` 配置文件中添加 Redis 的配置信息,例如:

springredishost=localhost

springredisport=6379

springredispassword=yourpassword

这个配置文件中指定了 Redis 服务器的地址、端口和密码。如果 Redis 服务器没有设置密码,可以省略 `springredispassword` 配置项。

在配置文件中添加了 Redis 的配置信息之后,就可以在 Spring Boot 应用程序中使用 Redis 了。可以使用 `@Autowired` 注解注入 `RedisTemplate` 或 `StringRedisTemplate` 对象,然后使用这些对象 *** 作 Redis 数据库。

例如,以下代码演示了如何使用 `StringRedisTemplate` 对象向 Redis 中写入和读取数据:

@RestController

public class RedisController {

@Autowired

private StringRedisTemplate redisTemplate;

@GetMapping("/redis/set")

public String setRedisValue() {

redisTemplateopsForValue()set("name", "Tom");

return "Set Redis Value Success";

}

@GetMapping("/redis/get")

public String getRedisValue() {

String name = redisTemplateopsForValue()get("name");

return "Get Redis Value: " + name;

}

}

这个控制器中使用 `StringRedisTemplate` 对象向 Redis 中写入和读取数据。可以通过访问 `/redis/set` 和 `/redis/get` 接口测试 Redis 的读写 *** 作。

大家好,一直以来我都本着 用最通俗的话理解核心的知识点, 我认为所有的难点都离不开 「基础知识」 的铺垫

「大佬可以绕过 ~」

本节给大家讲讲 「Java的SpringBoot框架」 , 之前我们学习的都是java的基础知识和底层提供的一些能力,我们日常工作都是在写接口。在我们在产品开发中,一般我们都会选择比较稳定的框架来帮我们加速开发,不会自己去造轮子,而在java众多框架中,spring框架表现的非常好,大部分公司都会首选它作为开发框架,而至今,大部分企业都是以 springboot 来构建项目了,一个稳健的系统需要引入稳定的技术~

如果你是一路看过来的,很高兴你能够耐心看完。前几期都是带大家学习了 SpringBoot 的基础使用以及集成 mybatis 开发,这也是我们写业务的基础,如果你还不熟悉这些,请先看完它们。接下来的几期内容将会带大家进阶使用,会先讲解基础 中间件 的使用和一些场景的应用,或许这些技术你听说过,没看过也没关系,我会带大家一步一步的入门,耐心看完你一定会有 收获 ,本期将会给大家讲解最热门的缓存中间件技术 Redis ,同样的,我们集成到 Springboot 中。最近github可能会被墙,所以我把源码放到了国内gitee上,本节我们依然使用上期的代码

Redis 是由意大利人Salvatore Sanfilippo(网名:antirez)开发的一款内存高速缓存数据库。全称叫 Remote Dictionary Server(远程数据服务) 是由 C语言 编写的,Redis是一个 key-value 存储系统,它支持丰富的数据类型,如: string、list、set、zset(sorted set)、hash

它本质上是一种键值对数据库,我们之前学习的 mysql 它是持久层的关系型数据库,而 redis 它的存储主要存在 内存 中。我们都知道在 内存 中的数据读取是非常快的,就好比你把一个变量存到磁盘读取和直接放到代码中运行,肯定是在代码中拿到的速度快,因为运行时期,都是直接存到内存的。

给大家总结一下:

有了基本的概念之后,我们下面进行环境搭建,在学习阶段,安装 redis 很简单,生产环境一般我们也会选择云产品,一切为了服务保障,虽说它只是做缓存用,但也是系统的一把 保护伞

如果你是 mac 用户,你可以运行如下命令:

安装完成后会提示你运行命令,运行即可。

win 用户也很简单,直接下载 redis 软件,双击运行即可,运行之后它会有一个小方块的图案,和 locahost:6379 的log,说明运行成功了。初始阶段没有配置的 redis 默认 host 就是本地, port 就是 6379 , 而且是 没有密码 就可以访问的。

推荐一个客户端软件 Redis Desktop Manager ,它是 redis 的客户端界面软件,方便面我们学习的时候 清理缓存 使用,生产慎连。

我们不给大家讲它的基本命令使用,它也有语法,可以通过类似命令执行,如果想学习的小伙伴,可以自行搜索。本期重点内容是在 sprinboot 中的使用,我们平时开发不可能是去命令行里敲的,都是代码里执行,而目前市面上有很多封装好的库,我们可以直接调用它的方法,很方便的就可以 *** 作它了,不用记一些繁琐的命令,下面我们就实际 *** 作一下:

修改 pomxml

修改 applicationyml :

redis 默认是有 16 个库,不是 15 个啊,从 0 开始算的,我们随便连一个

通过代码很好理解, 首先需要引入 StringRedisTemplate ,然后需要设置一个 key ,那么思考一下,这个 key 允许重复吗

我们进客户端看一下,发现 key 还是只有一个,但是值变成了新的值了,所以可以得知 key 是唯一的,我们重新设置的时候相当于刷新了它。

redis 中删除缓存有两种方式,一种是自我消亡,也就是 过期 销毁,还有有一种是 主动 销毁,我们先看一下,过期时间如何设置

我们设置了 10s 后过期,过完10s后发现,这个```key data``消失了。我们在看看如何主动删除

我们可以利用 Redis 做一个计数器,实现自增功能,你可以用它做网站访问统计

通常做法,我们会把它封装一下,后续使用直接引入封装好的即可,把它直接交给 Springboot容器 管理

其实这个类,你还可以继续进一步封装,比如约束 key 的规范,约束过期时间,约束数据类型等等,这一切也都是为了规范和后期维护,防止滥用缓存

缓存的主要场景是用于解决热点数据问题,因为这些数据是访问频率比较高的,当大量的请求进来, mysql 可能压力很大,这样一来,数据查询效率就很慢,用户肯不高兴等了,这样用户体验很不好。所以我们一般做法,都是把这些热点数据放到缓存里,因为缓存读取速度很快。当有新数据的时候,我们再及时更新它,一般流程是先查询缓存,查到了直接返回缓存数据,查不到再走数据库,然后再刷回缓存。

但是并发足够大的时候,还是会暴露出很多问题,比如面试常问的一些高频问题 缓存雪崩、缓存穿透、缓存雪崩 ,这些问题后边会给大家专门讲,和如何去防范。所以总的来说,引入任何一门技术并不是万事大吉,还需我们不断的在实践中积累经验

本期到这里就结束了,总结一下,我们了解了什么是 redis ,以及在 springboot 中如何去使用它们,很简单,没什么复杂的东西。但这里想多说一点的是,缓存的设计却是很复杂的,因为工具是死的,人是活的,我们如何正确设计,需要我们在项目中不断的积累。

我们之前教大家查询列表数据,都是所有数据返回,还没有教大家如何去做分页,下期将带大家学习一下 mybatis 分页插件的使用 ,下期不见不散, 关注我,不迷路~

这里我是用lettuce客户端,未使用Jedis 二者 区别如下:

1、Jedis 是直连模式,在多个线程间共享一个 Jedis 实例时是线程不安全的,

每个线程都去拿自己的 Jedis 实例,当连接数量增多时,物理连接成本就较高了

2、Lettuce的连接是基于Netty的,连接实例可以在多个线程间共享,如果你不知道Netty也没事,大致意思就是一个多线程的应用可以使用同一个连接实例,而不用担心并发线程的数量。通过异步的方式可以让我们更好地利用系统资源。

附注:若想详细了解Lettuce 可以看这篇文章 >

Redisson的Github地址: >

首先,队列这种数据结构相信大家都不陌生,它是一种先进先出的数据结构。普通队列中的元素是有序的,先进入队列中的元素会被优先取出进行消费;

延时队列相比于普通队列最大的区别就体现在其延时的属性上,普通队列的元素是先进先出,按入队顺序进行处理,而延时队列中的元素在入队时会指定一个延迟时间,表示其希望能够在经过该指定时间后处理。从某种意义上来讲,延迟队列的结构并不像一个队列,而更像是一种以时间为权重的有序堆结构。

本文使用Redis Zset来实现延迟队列。

1、pomxml

applicationyml

2、延迟任务对象定义

3、通知类任务定义

4、任务管理

5、测试

执行结果如下:

基于springversion:4x;

424RELEASE

不同spring版本对应的redis版本也不一样,配置类也会不同。

添加pom:

redis参数配置:RedisConfigclass

redis配置类:RedisConfigurationclass

redis工具类:redisUtilsclass

示例使用

以上就是关于Spring+Boot对Redis整合时,需要添加对应的依赖启动器是什么全部的内容,包括:Spring+Boot对Redis整合时,需要添加对应的依赖启动器是什么、SpringBoot进阶之缓存中间件Redis、springBoot 2.3 整合redis等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9286764.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存