spring boot +redis 连接池配置 及运用
  TEZNKK3IfmPf 2023年11月15日 20 0
package cn.com.suntree.utils.myself;

import lombok.extern.log4j.Log4j2;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

@Configuration
@EnableCaching
@Log4j2
public class RedisCacheConfiguration extends CachingConfigurerSupport {


   //@Value("")
    private String host = "127.0.0.1";

    //@Value("")
    private int port = 6379;

    private int timeout = 10;

    //@Value("")
    private int maxIdle = 8;//最大能够保持idle的数量,控制一个pool最多有多少个状态为idle的jedis实例

    // @Value("")
    private long maxWaitMillis = -1;//getBlockWhenExhausted为true时,连接会阻塞,超过了阻塞的时间(设定的maxWaitMillis,单位毫秒)时会报错

    private int maxTotal = 100;//在指定时刻通过pool能够获取到的最大的连接的jedis个数

    // @Value("")
    private String password = "yourpw";

    @Bean
    public JedisPool redisPoolFactory() {
        log.info("JedisPool注入成功!!");
        log.info("redis地址:" + host + ":" + port);
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(maxIdle);
        jedisPoolConfig.setMaxTotal(maxTotal);
        jedisPoolConfig.setMaxWaitMillis(maxWaitMillis);
        jedisPoolConfig.setMinEvictableIdleTimeMillis(100);//逐出连接的最小空闲时间 默认1800000毫秒(30分钟)
        jedisPoolConfig.setTimeBetweenEvictionRunsMillis(200); //逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1
        JedisPool jedisPool = new JedisPool(jedisPoolConfig, host, port, timeout, password);

        return jedisPool;
    }

}

获取连接

@Component
public class JedisUtils {

    @Autowired
    JedisPool jedisPool;
 public Jedis getJedis() {
  return jedisPool.getResource();
    }

运用,一定要关闭!!!

Jedis jedis = null;
            try {
                jedis = jedisUtils.getJedis();
                jedis.set(remind.getRemindTm(), JSON.toJSONString(remind));
            } finally {
                if (jedis != null) {
                    jedis.close();
                }
            }


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月15日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   24天前   21   0   0 json
TEZNKK3IfmPf