iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在SpringBoot项目中使用redis工具jar包
  • 907
分享到

怎么在SpringBoot项目中使用redis工具jar包

2023-06-08 01:06:26 907人浏览 独家记忆
摘要

本篇文章为大家展示了怎么在SpringBoot项目中使用redis工具jar包,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、Redis常用存储操作实现(redis-util模块,该module最

本篇文章为大家展示了怎么在SpringBoot项目中使用redis工具jar包,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

一、Redis常用存储操作实现(redis-util模块,该module最后会打包成jar供其他服务使用)

引用相关依赖

<!-- 如果有继承父级spring-boot-starter-parent,可不用添加版本号 --><!-- Redis缓存 [start] --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>2.3.0.RELEASE</version></dependency><!-- Redis缓存 [end] -->

配置reids连接信息

注:由于此时还处于redis-util工具包开发阶段,所以reids的配置文件还是由自己的模块来提供,后期打包成jar时,会清除redis-util工具包里的redis连接信息,然后由需要使用redis-util工具的服务模块提供reids的连接信息;
在reids-util的application.properties里配置redis数据库连接信息

#Redis服务器地址spring.redis.host=127.0.0.1#Redis服务器连接端口spring.redis.port=6379#Redis数据库索引(默认为0)spring.redis.database=0

自定义序列化类,将存储在Redis的对象序列化为JSON格式

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.GenericJackson2jsonRedisSerializer;import org.springframework.data.redis.serializer.StringRedisSerializer;import java.io.Serializable;@Configuration@EnableAutoConfigurationpublic class RedisConfig {  @Bean  public RedisTemplate<String, Serializable> redisTemplate(LettuceConnectionFactory redisConnectionFactory){    RedisTemplate<String, Serializable> template = new RedisTemplate();    template.seTKEySerializer(new StringRedisSerializer());    template.setValueSerializer(new GenericJackson2JsonRedisSerializer());    template.setHashKeySerializer(new StringRedisSerializer());    template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());    template.setConnectionFactory(redisConnectionFactory);    return template;  }}

开发相应的redis常用方法

package com.gh.redis.util;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.stereotype.Repository;import org.springframework.util.CollectionUtils;import java.io.Serializable;import java.util.ArrayList;import java.util.List;import java.util.Set;import java.util.concurrent.TimeUnit;@Repositorypublic class RedisUtil {  @Autowired  RedisTemplate<String, Serializable> redisTemplate;  // key-value是对象的  public RedisUtil(){  }    public boolean hasKey(String key) {    return Boolean.TRUE.equals(redisTemplate.hasKey(key));  }    public void insertOrUpdate(String key, Serializable value) {    redisTemplate.opsForValue().set(key, value);  }    public void insertOrUpdateBySeconds(String key, Serializable value, long seconds) {    redisTemplate.opsForValue().set(key, value, seconds, TimeUnit.SECONDS);  }    public void insertOrUpdateByMinutes(String key, Serializable value, long minutes) {    redisTemplate.opsForValue().set(key, value, minutes, TimeUnit.MINUTES);  }    public void insertOrUpdateByHours(String key, Serializable value, long hours) {    this.redisTemplate.opsForValue().set(key, value, hours, TimeUnit.HOURS);  }    public void insertOrUpdateByDays(String key, Serializable value, long days) {    this.redisTemplate.opsForValue().set(key, value, days, TimeUnit.DAYS);  }    public Object get(String key) {    return redisTemplate.opsForValue().get(key);  }    public Set<String> getPattern(String pattern) {    return redisTemplate.keys("*" + pattern + "*");  }    public boolean remove(String key) {    return Boolean.TRUE.equals(redisTemplate.delete(key));  }    public int removes(String... keys){    int count = 0;    List<String> deleteFails = new ArrayList<>();    for (String key : keys) {      if (Boolean.TRUE.equals(redisTemplate.delete(key))) {        ++count;      } else {        deleteFails.add(key);      }    }    if (!CollectionUtils.isEmpty(deleteFails)) {      System.err.println("======> Redis缓存删除失败的key:" + deleteFails.toString());    }    return count;  }    public int removeAll(){    Set<String> keys = redisTemplate.keys("*");    Long delete = 0L;    if (keys != null) {      delete = redisTemplate.delete(keys);    }    return delete != null ? delete.intValue() : 0;  }}

工具包开发完成,测试一下

import com.gh.common.toolsclass.ResultData;import com.gh.redis.util.RedisUtil;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.util.Set;@SpringBootTestclass RedisApplicationTests {  @Autowired  private RedisUtil redisUtil;  @Test  void test1() {    ResultData resultData = new ResultData();    resultData.setCode(0);    resultData.setMessage("redis测试");    resultData.setData("666666");    redisUtil.insertOrUpdate("demo", resultData);    System.err.println(redisUtil.hasKey("demo"));    Object demo = redisUtil.get("demo");    ResultData bo = (ResultData) demo;    System.err.println(bo.toString());  }  @Test  void test2() {    Set<String> list = redisUtil.getPattern("l");    for (String s: list) {      System.err.println(s);    }  }}

其中ResultData是自定义的一个用于返回信息的对象,可用其他对象替代,但是该对象需要实现Serializable接口(ResultData implements Serializable)

运行test1:

怎么在SpringBoot项目中使用redis工具jar包

运行test2:

怎么在SpringBoot项目中使用redis工具jar包

其他方法自行测试,这里不一 一展示;

清除redis数据库连接信息

自此redis-util工具包开发完成,可供其他服务使用,最后清除redis-util模块application.properties里的redis数据库连接信息。之后的连接信息由使用者模块提供,这样才符合redis-util作为一个纯工具包的定义。

二、创建一个consumer项目来引用redis-util工具包

在consumer项目的pom.xml中添加reids-utils的依赖

<!-- redis工具包 [start] --><dependency>      <groupId>com.gh</groupId>      <artifactId>redis-util</artifactId>      <version>0.0.1-SNAPSHOT</version>    </dependency><!-- redis工具包 [end] -->

pom如何引用自定义jar包依赖自行百度,如果在同一父工程模块下,可直接这么引用。不在同一父工程,需要先将jar包放到Maven仓库。

在consumer的application.properties配置文件里添加redis数据的连接信息

#Redis服务器地址spring.redis.host=127.0.0.1#Redis服务器连接端口spring.redis.port=6379#Redis数据库索引(默认为0)spring.redis.database=0

测试在cunsumer里是否可以使用redis-util工具包的方法

package com.gh.consumer;import com.gh.common.toolsclass.ResultData;import com.gh.redis.util.RedisUtil;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest(WEBEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)class ConsumerApplicationTests {// 这里使用该构造器注入的方式,因为使用变量注入  final RedisUtil redisUtil;  @Autowired  public ConsumerApplicationTests(RedisUtil redisUtil){    this.redisUtil = redisUtil;  }  @Test  void test1() {    // 如果存在demo缓存,就删除    if (redisUtil.hasKey("demo")) {      System.err.println(redisUtil.remove("demo"));    }    // 插入新的demo缓存    ResultData resultData = new ResultData();    resultData.setCode(0);    resultData.setMessage("redis测试-2");    resultData.setData("888888");    redisUtil.insertOrUpdate("demo", resultData);    Object demo = redisUtil.get("demo");    ResultData bo = (ResultData) demo;    System.err.println(bo.toString());  }  @Test  void test2() {    redisUtil.insertOrUpdate("test", "redis工具测试");    System.err.println(redisUtil.get("test"));  }}

运行test1,此时会发现控制台提示找不到RedisUtil的bean

怎么在SpringBoot项目中使用redis工具jar包

在启动类添加扫描

其他注解不用管,解决redis-util工具包bean扫描不到的问题,只需要添加注解@ComponentScan(value = “com.gh.redis.*”)就好

package com.gh.consumer;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;//import org.springframework.cloud.client.discovery.EnableDiscoveryClient;import org.springframework.cloud.openfeign.EnableFeignClients;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.ComponentScans;import org.springframework.scheduling.annotation.EnableScheduling;//@EnableDiscoveryClient eureka开启发现服务功能@EnableFeignClients(basePackages = "com.gh.consumer.feign")//@ComponentScan(basePackages = "com.gh.consumer.*")@ComponentScans(value = {@ComponentScan(value = "com.gh.consumer.*"),@ComponentScan(value = "com.gh.redis.*")})@EnableScheduling// 开启定时任务功能@SpringBootApplicationpublic class ConsumerApplication {public static void main(String[] args) {SpringApplication.run(ConsumerApplication.class, args);}}

再次测试

怎么在SpringBoot项目中使用redis工具jar包

上述内容就是怎么在SpringBoot项目中使用redis工具jar包,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网精选频道。

--结束END--

本文标题: 怎么在SpringBoot项目中使用redis工具jar包

本文链接: https://www.lsjlt.com/news/250584.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在SpringBoot项目中使用redis工具jar包
    本篇文章为大家展示了怎么在SpringBoot项目中使用redis工具jar包,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、Redis常用存储操作实现(redis-util模块,该module最...
    99+
    2023-06-08
  • FileUploadUtil工具类怎么在Java项目中使用
    本篇文章为大家展示了FileUploadUtil工具类怎么在Java项目中使用 ,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体内容如下package com.gootrip.util;impor...
    99+
    2023-05-31
    java fileuploadutil ava
  • 使用eclipse 实现将springboot项目打成jar包
    前言: 对于经验老道的人员可以路过,但是对于经验比较少的开发者来说,不得不是一篇好的博文,可以让大家少走一些弯路和无用的思考。 下面进入正题!!! 一、首先修改eclipse运行环境...
    99+
    2024-04-02
  • SpringBoot项目中怎么对第三方JAR进行打包
    SpringBoot项目中怎么对第三方JAR进行打包?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SpringBoot项目打包成可运行JAR包,但是不是所有JA...
    99+
    2023-05-31
    springboot 第三 jar
  • SpringBoot项目怎么引入第三方sdk jar包
    本篇内容介绍了“SpringBoot项目怎么引入第三方sdk jar包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!场景对接第三方...
    99+
    2023-06-30
  • SpringBoot项目中jar发布获取jar包所在目录路径的最佳方法
     示例代码: //第一种 File path = new File(ResourceUtils.getURL("classpath:").g...
    99+
    2024-04-02
  • 如何使用eclipse实现将springboot项目打成jar包
    这篇文章主要为大家展示了“如何使用eclipse实现将springboot项目打成jar包”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用eclipse实现将springboot项目打成j...
    99+
    2023-06-20
  • 如何在SpringBoot项目中使用redis数据库
    今天就跟大家聊聊有关如何在SpringBoot项目中使用redis数据库,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。REmote DIctionary Server(Redis) ...
    99+
    2023-06-07
  • 怎么将本地SpringBoot项目jar包部署到Linux环境中
    这篇文章主要介绍了怎么将本地SpringBoot项目jar包部署到Linux环境中的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么将本地SpringBoot项目jar包部署到Linux环境中文章都会有所收获,...
    99+
    2023-07-06
  • 怎么使用maven将项目的test代码打包进jar中
    这篇文章给大家分享的是有关怎么使用maven将项目的test代码打包进jar中的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。maven将项目的test代码打包进jar中项目结构如下&hellip;/src...
    99+
    2023-06-29
  • Go并发和npm打包:如何在项目中使用这两个工具?
    随着互联网技术的不断发展,现代软件开发中使用的工具也在不断演进。在这个过程中,Go并发和npm打包无疑是两个备受关注的工具。本文将介绍如何在项目中使用这两个工具,以及如何利用它们来提高我们的开发效率。 一、Go并发 Go是一门开源编程语言,...
    99+
    2023-08-26
    并发 npm 打包
  • springboot项目中怎么使用Swagger
    今天小编给大家分享一下springboot项目中怎么使用Swagger的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、Sw...
    99+
    2023-07-05
  • springboot项目怎么引入本地依赖jar包并打包到lib文件夹中
    这篇文章主要介绍“springboot项目怎么引入本地依赖jar包并打包到lib文件夹中”,在日常操作中,相信很多人在springboot项目怎么引入本地依赖jar包并打包到lib文件夹中问题上存在疑惑,小编查阅了各式资料,整理出简单好用的...
    99+
    2023-07-06
  • Springboot项目中使用redis的配置方法
    小编给大家分享一下Springboot项目中使用redis的配置方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!springboot是什么springboot一...
    99+
    2023-06-14
  • Springboot项目中使用redis的配置详解
    程序结构: 一、配置  1. 在pom.xml中添加依赖 pom.xml文件如下: <?xml version="1.0" encoding="UTF-...
    99+
    2024-04-02
  • 如何在Java 项目中使用DateUtils日期工具类
    本篇文章为大家展示了如何在Java 项目中使用DateUtils日期工具类,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。介绍在java中队日期类型的处理并不方便,通常都需要借助java.text.S...
    99+
    2023-05-31
    java dateutils dat
  • 如何在java项目中使用redis
    本篇文章给大家分享的是有关如何在java项目中使用redis,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、首先下载jar包放到你的工程中2、练习package c...
    99+
    2023-05-31
    redis java ava
  • 怎么在javaWeb项目中使用Redis进行缓存
    怎么在javaWeb项目中使用Redis进行缓存?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一:serviceImpl定义:@Service  &nb...
    99+
    2023-05-30
  • 如何在springboot项目中使用 swagger
    这篇文章将为大家详细讲解有关如何在springboot项目中使用 swagger,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、pom.xml引入了两个jar。<dependency...
    99+
    2023-05-31
    swagger springboot
  • 如何在Springboot中使用RedisUtils工具类
    如何在Springboot中使用RedisUtils工具类?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。SpringBoot整合Redis引入Redis依赖 &l...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作