springboot 配置JedisPool 简洁有效 复制即可运行「建议收藏」

springboot 配置JedisPool 简洁有效 复制即可运行「建议收藏」吐槽一下,本来以为随便找个文章跟着配置一下,就可以了,后来发现好多例子无法运行。估计是环境的问题,后来把大神们的例子综合一下,终于配置出一个简洁有效的例子,个人太懒,技术太烂,复杂的代码不理解,所以能简就简。抛砖引玉,大家多指点。


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

吐槽一下,本来以为随便找个文章跟着配置一下,就可以了,后来发现好多例子无法运行。估计是环境的问题,后来把大神们的例子综合一下,终于配置出一个简洁有效的例子,个人太懒,技术太烂,复杂的代码不理解,所以能简就简。抛砖引玉,大家多指点。?

springboot版本用的是2.1.4的,其他的maven等软件版本也不会有大的影响,就没有必要列出了。

步骤如下:

1,配置pom文件,引入相应资源文件

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
     <groupId>redis.clients</groupId>
     <artifactId>jedis</artifactId>
     <version>3.0.1</version>
</dependency>

2,配置application.properties,如果springboot版本差别太大,配置中的属性名会有不同,请注意修改。

#redis配置

# Redis数据库索引(默认为0)
spring.redis.database=0
# Redis服务器地址
spring.redis.host=127.0.0.1
# Redis服务器连接端口
spring.redis.port=6379
# Redis服务器连接密码(默认为空)
spring.redis.password=
# 连接池最大连接数
spring.redis.jedis.pool.max-active=100
# 连接池中的最大空闲连接
spring.redis.jedis.pool.max-idle=20
# 连接池中的最小空闲连接
spring.redis.jedis.pool.min-idle=5
# 连接超时时间(毫秒)
spring.redis.timeout=1000
#spring-session 使用
spring.session.store-type=none

3,添加RedisConfig的工厂类

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

@Configuration
public class RedisConfig extends CachingConfigurerSupport {

    protected static final Logger logger = Logger.getLogger(RedisConfig.class);

    @Value("${spring.redis.host}")
    private String host;

    @Value("${spring.redis.port}")
    private int port;

    @Value("${spring.redis.jedis.pool.max-active}")
    private int maxTotal;

    @Value("${spring.redis.jedis.pool.max-idle}")
    private int maxIdle;

    @Value("${spring.redis.jedis.pool.min-idle}")
    private int minIdle;

    @Value("${spring.redis.password}")
    private String password;

    @Value("${spring.redis.timeout}")
    private int timeout;

    public JedisPool redisPoolFactory() {
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxTotal(maxTotal);
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMinIdle(minIdle);
        JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, null);
        logger.info("JedisPool注入成功!!");
        logger.info("redis地址:" + host + ":" + port);
        return jedisPool;
    }
}

4,添加工具类

import com.wx.config.RedisConfig;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

import javax.annotation.PostConstruct;


/**
 * Date:2019-07_08 13:20
 * Description: redis 工具类
 */
@Component
public class RedisUtils {

    protected static final Logger logger = Logger.getLogger(RedisUtils.class);

    private static JedisPool jedisPool;

    @Autowired
    private RedisConfig redisConfig;

    /**
     * JedisPool 无法通过@Autowired注入,可能由于是方法bean的原因,此处可以先注入RedisConfig,
     * 然后通过@PostConstruct初始化的时候将factory直接赋给jedisPool
     */
    @PostConstruct
    public void init() {
        jedisPool = redisConfig.redisPoolFactory();
    }

    public static String get(String key, int indexdb) {
        Jedis jedis = null;
        String value = null;

        try {
            jedis = jedisPool.getResource();//获取一个jedis实例
            jedis.select(indexdb);
            value = jedis.get(key);
        } catch (Exception e) {
            logger.error("错误日志:"+e.getMessage());
        } finally {
            jedis.close();
        }
        return value;
    }
}

5,添加测试方法

    @GetMapping(value = "/test")
    public String test(){
        String str = RedisUtils.get("test",0);
        System.out.println(str+"**************");
        return str;
    }

获取key值

springboot 配置JedisPool 简洁有效 复制即可运行「建议收藏」

如有问题,请评论区讨论。一起探讨。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197068.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • python flask debug_pycharm配置debug

    python flask debug_pycharm配置debugflask项目如果在开发的时候不打开Debug模式的话,我们想要看项目中的报错信息就只能去控制台查看,会比较麻烦,而且如果不开启debug模式,我们每一次调整代码都需要将服务器重新启动,是非常麻烦的一件事,所以我们最好是将debug模式打开但是我在pycharm中使用代码开启debug模式总是打不开。使用代码打开debug模式的教程可以参考孟船长Flask第五篇—-设置debug模式的这…

    2022年8月25日
  • Django(46)drf序列化类的使用(ModelSerializer)「建议收藏」

    Django(46)drf序列化类的使用(ModelSerializer)「建议收藏」前言我们上篇文章使用到了Serializer类,可能有小伙伴说太过复杂,那么本篇就为大家带来更加简便的序列化类ModelSerializerModelSerializer先来看下ModelSer

    2022年7月30日
  • 数据仓库之电商数仓– 3.1、电商数据仓库系统(ODS层、DIM层、DWD层)

    数据仓库之电商数仓– 3.1、电商数据仓库系统(ODS层、DIM层、DWD层)目录一、数仓分层1.1为什么要分层1.2数据集市与数据仓库概念1.3数仓命名规范1.3.1表命名1.3.2脚本命名1.3.3表字段类型二、数仓理论2.1范式理论2.1.1范式概念2.1.2函数依赖2.1.3三范式区分2.2关系建模与维度建模2.2.1关系建模2.2.2维度建模⭐️2.3维度表和事实表⭐️2.3.1维度表2.3.2事实表2.4维度模型分类2.5数据仓库建模⭐️????2.5.1ODS层2.5.2DIM层和DWD层2.5.3DWS层与DWT层2.5.4

    2022年6月26日
  • aop动态代理机制有哪些_aop和动态代理的关系

    aop动态代理机制有哪些_aop和动态代理的关系这里的AOP指的是面向切面编程思想,而不是SpringAOP。AOP(AspectOrientProgramming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP实现主要分为静态代理和动态代理。-静态代理主要是`AspectJ`-动态代理主要是`SpringAOP`

    2022年10月9日
  • spring dubbo集成(@autowired和构造器注入)

    一:运行spring容器的方式有三种1:使用tomcat、jetty等servlet容器运行2:自己写一个Main方法运行3:使用dubbo框架提供的Main方法运行前面两种有一定的局限性,很多缺点,具体就不一一列举,有兴趣的同学可以研究一下,今天就给大家讲如何实现第三种方式二:Main配置详讲spring路径存放路径 按照dubbo官网解说,要使得Main能正确的启

    2022年4月14日
  • 漫画:这个靠脸吃饭的男人,太可怕了!

    今天推荐画风唯美的漫画 《重生之星光璀璨》 作为歌坛巨星的阮熙冰被双胞胎妹妹 和未婚夫设计杀害,阴差阳错重生 到了一个小服务生的身上。 她靠着努力与演技重返娱乐圈, 誓要夺回曾属于…

    2021年6月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号