SpringBoot使用redis 笔记(视频摘抄 哔哩哔哩博主(感谢!):遇见狂神)

springboot集成redis步骤

1.创建springboot项目

2.配置连接

3.测试

创建springboot项目

创建以一个Maven项目

创建之后查看pom.xml配置文件,可以看到

pom文件里面导入了 data-redis 的依赖,那我们就可以在知道,springboot集成redis操作redis数据库是通过这个依赖完成的,点进这个依赖,他的底层

  <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>

配置连接

#配置redis
spring.redis.host=127.0.0.1
spring.redis.port=6379

 配置依赖在application.properties文件里面配置

需要配置的东西在 RedisProperties.class,之里面现在是默认的本地配置如果有需要修改其他主机的配置那就可以在配置文件里进行修改

在application.properties里还可以配置连接池,之前使用的是jedis,现在建议使用的是lettuce,因为在RedisAutoConfiguration类中的redisTemplate方法中引入一个了一个接口RedisConnectionFactory的参数,如果可以看到源码的话点进去可以看到RedisConnectionFactory的实现类,它的实现类有两种一个是JedisConnectionFactory实现类这里很多的方法是不生效的,那就是说不可以用,但是在LettuceConnectionFactory实现类里是生效的所以这里推荐使用连接池lettuce

测试

1.在测试类导入RedisTemplate数据库驱动能通过redisTemplate对象调用方法来操作redis

@Autowired
private RedisTemplate redisTemplate;

使用细节

序列化问题

Redis 对象都需要序列化(否则会报错)

默认的  RedisTemplate<Object, Object> 两个泛型都是object类型后面使用需要强制转换,我们平时常使用的是 RedisTemplate<String, Object>所以后面我们可以去替换这个默认的RedisTemplate。

由于我们在Redis 中尝试用的是String类型所以Redis单独提出来了一个bean

/** Copyright 2012-2021 the original author or authors.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at**      https://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/package org.springframework.boot.autoconfigure.data.redis;import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnSingleCandidate;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;/*** {@link EnableAutoConfiguration Auto-configuration} for Spring Data's Redis support.** @author Dave Syer* @author Andy Wilkinson* @author Christian Dupuis* @author Christoph Strobl* @author Phillip Webb* @author Eddú Meléndez* @author Stephane Nicoll* @author Marco Aust* @author Mark Paluch* @since 1.0.0*/
@Configuration(proxyBeanMethods = false)
@ConditionalOnClass(RedisOperations.class)
@EnableConfigurationProperties(RedisProperties.class)
@Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class })
public class RedisAutoConfiguration {@Bean@ConditionalOnMissingBean(name = "redisTemplate")@ConditionalOnSingleCandidate(RedisConnectionFactory.class)public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {RedisTemplate<Object, Object> template = new RedisTemplate<>();template.setConnectionFactory(redisConnectionFactory);return template;}@Bean@ConditionalOnMissingBean@ConditionalOnSingleCandidate(RedisConnectionFactory.class)public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {return new StringRedisTemplate(redisConnectionFactory);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/38248.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机基础之汇编语言学习笔记

学习来源&#xff1a;b站各种学习资料 前置知识&#xff1a;计算机组成原理等知识 学习参考的资源 汇编语言编程的速成指南[上]~从零开始的期末抢救计划 &#xff08;8086汇编&#xff09;_哔哩哔哩_bilibili 链接: https://pan.baidu.com/s/1tg_ZW7VD3TS_s1v_EjS89w?pwdak6…

Uniapp 默认demo安装到手机里启动只能看得到底tab无法看到加载内容解决方案

Uniapp 默认demo安装到手机里以后&#xff0c;启动APP只能看到底tab栏&#xff0c;无法看到每个tab页对应的内容&#xff0c;HBuilder会有一些这样的报错信息&#xff1a; Waiting to navigate to: /pages/tabBar/API/API, do not operate continuously: 解决方案&#xff1a;…

目标追踪的基石:深度解析边界框(Bounding Box)

标题&#xff1a;目标追踪的基石&#xff1a;深度解析边界框&#xff08;Bounding Box&#xff09; 摘要 在计算机视觉和图像处理领域&#xff0c;边界框&#xff08;Bounding Box&#xff09;是一种用于目标检测和目标追踪的基本工具。它通过矩形框的形式&#xff0c;精确地…

分治精炼宝库-----快速排序运用(⌯꒪꒫꒪)੭

目录 一.基本概念: 一.颜色分类&#xff1a; 二.排序数组&#xff1a; 三.数组中的第k个最大元素&#xff1a; 解法一&#xff1a;快速选择算法 解法二&#xff1a;简单粗暴优先级队列 四.库存管理Ⅲ&#xff1a; 解法一&#xff1a;快速选择 解法二&#xff1a;简单粗…

Unity扩展编辑器功能的特性

1.添加分组标题 用于在Unity的Inspector视图中为属性或变量组创建一个自定义的标题或头部&#xff0c;有助于在Inspector中组织和分类不同的属性&#xff0c;使其更易于阅读和管理。 [Header("Common Properties")] public float MouseSensitivity 5; public float…

ES中单机部署状态为Yellow解决办法

一、背景 单机的 ES 状态为 Yellow&#xff0c;在 Kibana 的管理界面看到的 index 的状态也是 Yellow 这个问题在于单机版的 ES&#xff0c;是没有备份的&#xff0c;没有副本&#xff0c;设置 index 副本的数量为 0 即可 PUT /index/_settings {"number_of_replicas&q…

家里装修网线的三种预留方式你需要提前知道,避免后悔

聊一下网线。如果让你一天不吃饭你可能受得了&#xff0c;让你一天不喝水你也能受得了&#xff0c;如果让你三个小时不上网&#xff0c;估计很多人都受不了。      因为现在每个人都太依靠网络了&#xff0c;人人都有“网瘾”。所以在装修中&#xff0c;业主对家里的网络关…

学习java第一百一十六天

Spring Framework有哪些不同的功能&#xff1f; 答&#xff1a; 轻量级-Spring 在代码量和透明度方面都很轻便。 IOC-控制反转AOP-面向切面编程可以将应用业务逻辑和系统服务分离&#xff0c;以实现高内聚。容器-Spring 负责创建和管理对象&#xff08;Bean&#xff09;的生命周…

Python· 求解一元二次方程实根的函数

在Python中&#xff0c;求解一元二次方程 ( ax^2 bx c 0 ) 的实根可以通过使用math模块中的sqrt函数来实现。这里提供一个简单的函数&#xff0c;它接受三个参数a、b和c&#xff0c;然后返回方程的实根。 import mathdef solve_quadratic(a, b, c):# 计算判别式的值discrim…

微服务中的Docker详细学习

Docker的个人理解 首先我对于Docker的理解分为两部分&#xff0c;第一是对名字上的理解&#xff0c;我们都知道docker的英文翻译是“码头工人”的意思&#xff0c;所以我们也可以理解为docker是码头上的一个个集装箱的使用。这也与他的图标很相似。其次我是对于其功能上的理解&…

计算机网络-第3章数据链路层

信道类型&#xff1a;①点对点信道&#xff0c;一对一的点对点通信方式。②广播信道&#xff0c;一对多的广播通信方式&#xff0c;过程比较复杂。 3.1数据链路层的几个共同问题 3.1.1数据链路和帧 链路就是从一个节点到相邻节点的一段物理线路&#xff0c;而中间没有任何其…

Redis 高可用(理论)

目录 Redis 高可用 Redis 持久化 RDB 持久化 触发条件 手动触发 自动触发 ##其他自动触发机制## 执行流程 启动时加载 AOF 持久化 执行流程 &#xff08;1&#xff09;命令追加(append) &#xff08;2&#xff09;文件写入(write)和文件同步(sync) &#xff08;3&…

帝国CMS(EmpireCMS)漏洞复现

简介 《帝国网站管理系统》英文译为Empire CMS&#xff0c;简称Ecms&#xff0c;它是基于B/S结构&#xff0c;且功能强大而帝国CMS-logo易用的网站管理系统。 帝国CMS官网&#xff1a;http://www.phome.net/ 参考相关漏洞分析文章&#xff0c;加上更详细的渗透测试过程。 参考…

snat、dnat和firewalld

目录 概述 SNAT源地址转换 DANT目的地址转换 抓包 firewalld 端口管理 概述 snat &#xff1a;源地址转换 内网——外网 内网ip转换成可以访问外网的ip 也就是内网的多个主机可以只有一个有效的公网ip地址访问外部网络 DNAT&#xff1a;目的地址转发 外部用户&#…

人工智能导论速成笔记

文章目录 前言考试题型第一章、人工智能导引 (10分 )课后习题第二章、Python基础 (10分 )*文件读写NumPy的使用Python绘图基础第三章、机器学习初步(15分 )逻辑回归分类(Logistic Regression)*,3.5线性回归预测(Linear Regression)*,3.6 、3.7、 3.8聚类 3.9第四章、自然语言…

一文带你了解乐观锁和悲观锁的本质区别!

文章目录 悲观锁是什么&#xff1f;乐观锁是什么&#xff1f;如何实现乐观锁&#xff1f;什么是CAS应用局限性ABA问题是什么&#xff1f; 悲观锁是什么&#xff1f; 悲观锁它总是假设最坏的情况&#xff0c;它会认为共享资源在每次被访问的时候就会出现线程安全问题&#xff0…

JVM调优(一)——JVM调优诊断工具详解

最近项目要生产上线&#xff0c;正在做压测性能测试&#xff0c;开始进行一些性能瓶颈分析&#xff0c;记得上一次做性能分析优化&#xff0c;还是国网项目&#xff0c;针对Kafka,Canal,ES,服务&#xff0c;数据库等一系列的排查分析&#xff0c;后面打算补一下总结内容&#x…

安全和加密常识(6)Base64编码方式

文章目录 什么是 Base64编码原理编解码示例应用什么是 Base64 Base64 是一种用于将二进制数据编码为仅包含64种ASCII字符的文本格式的编码方法,注意,它不是加密算法。它设计的目的主要是使二进制数据能够通过只支持文本的传输层(如电子邮件)进行传输。Base64常用于在需要处…

Windows系统下文件夹权限详解

文章目录 问题描述文件夹属性 问题描述 今天在Win10系统下&#xff0c;实现文件夹设置权限&#xff0c;具体的方案的涉及到我们公司内部的一款加密软件&#xff0c;不太方便透漏&#xff0c;借此机会&#xff0c;我也重新的回顾下windows系统下的文件夹权限 文件夹属性 打开…

vue3+Ts封装axios网络请求

1.安装axios npm i axios 在package.json中检查axios是否安装成功 "dependencies": {"axios": "^1.7.2","vue": "^3.4.29","vue-router": "^4.4.0"}, 2.新建文件 新建文件utils/request.ts import…