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

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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 简洁有效 复制即可运行「建议收藏」

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 学生宿舍管理系统概要设计说明书_学生宿舍管理系统需求分析

    学生宿舍管理系统概要设计说明书_学生宿舍管理系统需求分析1、引言1.1编写目的学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初阶段,手工记录对于规模小的学校来说还勉强可以接受,但对于学生信息量比较庞

  • mybatiscodehelperpro激活码【2021.10最新】

    (mybatiscodehelperpro激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • 二进制加减运算

    二进制加减运算二进制加法原则是:2个1相加等于2就要向前给1,下面得算为0,相当于十进制1+9=10向前给1,下面得算为0,因为二进制只有0和1,所以1加1等于2多了一个1就要往前送。二进制减法原则是:0减1不够,就向前借2减11、加法实例11001100+0000110011001100+00001100——————11011000首先右边两个0相加为0,右3位1+1=2就要给前面1个1,下面得数为0,右4位因为前面给了一个1,所以现在就是1+1+1=3,把2向前给1,然后3..

  • mysql倒序截取字符串_MySQL数据库之mysql截取字符串与reverse函数

    mysql倒序截取字符串_MySQL数据库之mysql截取字符串与reverse函数本文主要向大家介绍了MySQL数据库之mysql截取字符串与reverse函数,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。这个网页上很多知识点,可以学习下,关于mysql的函数,也可以作为API查询:这里只说下mysql的截取函数和reverse函数:MySQL字符串截取函数:left(),right(),substring(),substring_index()…

    2022年10月31日
  • 新浪微博爬虫分享(一天可抓取 1300 万条数据)「建议收藏」

    From:https://blog.csdn.net/bone_ace/article/details/50903178微博爬虫单机每日千万级的数据微博爬虫总结:https://blog.csdn.net/nghuyong/article/details/81251948Python爬虫——新浪微博(网页版):https://blog.csdn.net/qq_37267015/ar…

  • JAVA-常用API之StringBuilder

    JAVA-常用API之StringBuilderJAVA-常用API之StringBuilder

发表回复

您的电子邮箱地址不会被公开。

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