springboot整合redis-jedis客戶端配置


1.導入依賴

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<exclusions>
<exclusion>
<groupId>io.lettuce</groupId>
<artifactId>lettuce-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.4.1</version>
</dependency>

2.配置properties

#jedis
spring.redis.jedis.pool.max-active=100
spring.redis.jedis.pool.min-idle=10
spring.redis.cluster.max-redirects=5
spring.redis.timeout=10000
#中心集群
spring.redis.cluster.nodes=192.168.1.126:30001,192.168.1.126:30002,192.168.1.126:30003,192.168.1.126:30004,192.168.1.126:30005,192.168.1.126:30006,192.168.1.126:30004,192.168.1.126:30005,192.168.1.126:30006

3.配置configuration

package com.offerslook.setting.config;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisClusterConfiguration;
import org.springframework.data.redis.connection.RedisNode;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.jedis.JedisClientConfiguration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
import redis.clients.jedis.JedisPoolConfig;

import java.util.List;

@Configuration
public class JedisConfig {

@Autowired
private RedisProperties redisProperties;


private JedisPoolConfig jedisPoolConfig() {
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(redisProperties.getJedis().getPool().getMaxIdle());
poolConfig.setMaxTotal(redisProperties.getJedis().getPool().getMaxActive());
poolConfig.setMaxWaitMillis(redisProperties.getJedis().getPool().getMaxWait().toMillis());
poolConfig.setTimeBetweenEvictionRunsMillis(30000);
poolConfig.setTestOnBorrow(true);

return poolConfig;
}


@Bean(name = "stringRedisTemplate")
public StringRedisTemplate masterStringRedisTemplate() {
RedisClusterConfiguration configuration = redisClusterConfiguration(redisProperties.getCluster().getNodes());
JedisPoolConfig poolConfig = jedisPoolConfig();

JedisConnectionFactory factory = new JedisConnectionFactory(configuration, poolConfig);
factory.afterPropertiesSet();

return new StringRedisTemplate(factory);
}


@Bean(name = "singleStringRedisTemplate")
public StringRedisTemplate codisStringRedisTemplate() {
RedisStandaloneConfiguration configuration = standaloneConfiguration("127.0.0.1",6379);
JedisPoolConfig poolConfig = jedisPoolConfig();

JedisClientConfiguration clientConfiguration = JedisClientConfiguration.builder().
usePooling().poolConfig(poolConfig).build();
JedisConnectionFactory factory = new JedisConnectionFactory(configuration, clientConfiguration);
factory.afterPropertiesSet();

return new StringRedisTemplate(factory);
}
/**
* 配置redis集群
* @param nodes
* @return
*/
private RedisClusterConfiguration redisClusterConfiguration(List<String> nodes) {
RedisClusterConfiguration redisClusterConfiguration = new RedisClusterConfiguration();
for (String ipPort : nodes) {
String[] ipPortPair = ipPort.split(":");
redisClusterConfiguration.addClusterNode(new RedisNode(ipPortPair[0].trim(), Integer.parseInt(ipPortPair[1].trim())));
}
redisClusterConfiguration.setMaxRedirects(redisProperties.getCluster().getMaxRedirects());

return redisClusterConfiguration;
}

/**
* 設置單機redis
* @param url
* @param port
* @return
*/
private RedisStandaloneConfiguration standaloneConfiguration(String url,int port) {
return new RedisStandaloneConfiguration(url,port);
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM