千家信息网

SpringBoot如何集成Redis

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章给大家分享的是有关SpringBoot如何集成Redis的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SpringBoot集成Redis1、概述Redis是什么?R
千家信息网最后更新 2025年11月07日SpringBoot如何集成Redis

这篇文章给大家分享的是有关SpringBoot如何集成Redis的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

SpringBoot集成Redis

1、概述

Redis是什么?

Redis(Remote Dictionary Server ),即远程字典服务。

是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

Redis能该干什么?

内存存储、持久化,内存是断电即失的,所以需要持久化(RDB、AOF)高效率、用于高速缓冲发布订阅系统地图信息分析计时器、计数器(eg:浏览量)… …

特性

多样的数据类型

持久化

集群

事务

2、测试Redis

SpringBoot操作数据,Spring-Data、 jbdc、redis… …

SpringData与SpringBoot齐名的项目!

说明:在SpringBoot2.x之后,原来使用的jedis被替换为lettuce

jedis:采用的直连,多个线程操作的话,是不安全的,如果想要避免不安全的,需使用jedis pool连接池!像BIO模式

lettuce:采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况!可以减少线程数据,更像NIO模式

新建一个项目

注意:

查看底层

源码分析:

@Bean@ConditionalOnMissingBean(  //如果未注入组件条件,我们自己可以定义一个redisTemplate来替换这个默认的    name = {"redisTemplate"})public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {    //默认的 RedisTemplate 没有过多的设置 redis 都是需要序列化的  !    //两个泛型都是 Object  Object的类型,我们往后使用需要强制转换    RedisTemplate template = new RedisTemplate();    template.setConnectionFactory(redisConnectionFactory);    return template;}@Bean@ConditionalOnMissingBean  //由于String 是redis 中最常用的类型  所有说单独提出来一个bean!public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException {    StringRedisTemplate template = new StringRedisTemplate();    template.setConnectionFactory(redisConnectionFactory);    return template;}

1、导入依赖

2、配置连接

# SpringBoot 所有的配置类 都有一个自动配置类  RedisAutoConfiguration# 自动配置类都会绑定一个 properties 配置文件  RedisProperties#配置 redisspring.redis.host=127.0.0.1spring.redis.port=6379spring.redis

3、测试!

package com.kk;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.data.redis.connection.RedisConnection;import org.springframework.data.redis.core.RedisTemplate;@SpringBootTestclass Redis01SpringbootApplicationTests {    @Autowired    private RedisTemplate redisTemplate;    @Test    void contextLoads() {        /*        redisTemplate        opsForValue  操作字符串的  类似String        opsForList  操作List  类似List        opsForSet        opsForHash        opsForZSet        opsForGeo        opsForHyperLogLog        除了基本的操作 ,我们常用的方法都可以直接通过redisTemplate 比如事务和基本的CRUD         */        //获取redis的连接对象//        RedisConnection connection = redisTemplate.getConnectionFactory().getConnection();//        connection.flushDb();//        connection.flushAll();        redisTemplate.opsForValue().set("kk1","kk2");        System.out.println(redisTemplate.opsForValue().get("kk1"));    }}

3、自定义redisTemplate

首先先建一个实体类,测试

User类

package com.kk.pojo;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.springframework.stereotype.Component;import java.io.Serializable;@Component@Data@AllArgsConstructor@NoArgsConstructor//在企业中,我们所有的pojo都会序列化public class User implements Serializable {    private String name;    private int age;}

测试:

@Testpublic void test() throws JsonProcessingException {    //真实的开发一般都使用json来传递对象    User user = new User("kk", 17);    String jsonUser = new ObjectMapper().writeValueAsString(user);//这样就变成了一个json对象了    redisTemplate.opsForValue().set("user",jsonUser);    System.out.println(redisTemplate.opsForValue().get("user"));}
r = new ObjectMapper().writeValueAsString(user);//这样就变成了一个json对象了redisTemplate.opsForValue().set("user",jsonUser);System.out.println(redisTemplate.opsForValue().get("user"));}

==注意:如果不在User类中实现序列化,它会报错==

感谢各位的阅读!关于"SpringBoot如何集成Redis"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

数据 配置 内存 对象 线程 测试 安全 序列 类型 事务 内容 多个 常用 文件 更多 模式 篇文章 语言 项目 分析 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 初级软件开发工程师简历 网络安全核查工具 2021网络安全周来历 手机怎么删除微信同名数据库 山东专业服务器租用云主机 外购软件能否按软件开发销售 软件开发技术咨询及技术服务 如何选好服务器 网络安全防御体系方法论 硚口区信息网络安全维护收费标准 崇明区软件开发售后服务 怎么选择软件开发项目 加强网络安全的手抄报 软件开发自定义新的文件后缀类型 mysql 数据库的语句 六安服务器回收价格优质商家 计算机网络技术基础实验教程 高恪网络安全设置 蓝色科技互联网宣传片 装配式网络技术有哪些 用友查询数据库方法 软件开发人员 笔记本电脑 重庆前端软件开发公司排名 k2软件开发价格 sap必须做数据库吗 服务器怎么按iis管理器 起诉杭州义牛网络技术有限公司 2022免费服务器节点 智慧城市大数据服务器配置 无锡计算机网络技术推广代理品牌
0