(接上一篇)
整合时要用的配置
1. pom.xml
redis.clients
jedis
2.9.0
org.springframework.boot
spring-boot-starter-data-redis
2.yml
spring:
redis:
cache.clusterNodes: 192.168.75.128:7000,192.168.75.128:7001,192.168.75.128:7002,192.168.75.128:7003,192.168.75.128:7004,192.168.75.128:7005
cache.commandTimeout: 5000
server:
port: 8011
(注意:配置 节点,超时)
(application.pro..配置文件:
spring.redis.cache.clusterNodes=192.168.56.128:7000,192.168.56.128:7001,192.168.56.128:7002,192.168.56.128:7003,192.168.56.128:7004,192.168.56.128:7005
spring.redis.cache.commandTimeout=5000
server.port=8011)
3.需要的3个配置文件:
RedisProperties 创建RedisProperties装载配置到对象
JedisClusterConfig 创建JedisClusterConfig读取读取配置信息
RedisClientTemplate 创建RedisClientTemplate接口进行set get测试 ,自行修改
4.注入 RedisClientTemplate redisClientTemplate;
可以直接使用;
首先:
spring boot整合–RedisProperties
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "spring.redis.cache")
public class RedisProperties {
private int expireSeconds;
private String clusterNodes;
private int commandTimeout;
public int getExpireSeconds() {
return expireSeconds;
}
public void setExpireSeconds(int expireSeconds) {
this.expireSeconds = expireSeconds;
}
public String getClusterNodes() {
return clusterNodes;
}
public void setClusterNodes(String clusterNodes) {
this.clusterNodes = clusterNodes;
}
public int getCommandTimeout() {
return commandTimeout;
}
public void setCommandTimeout(int commandTimeout) {
this.commandTimeout = commandTimeout;
}
}
然后:
spring boot整合—JedisClusterConfig
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import java.util.HashSet;
import java.util.Set;
@Configuration
public class JedisClusterConfig {
@Autowired
private RedisProperties redisProperties;
public JedisCluster getJedisCluster(){
String [] serverArray=redisProperties.getClusterNodes().split(",");
Set<HostAndPort> nodes=new HashSet<>();
for (String ipPort:serverArray){
String [] ipPortPair=ipPort.split(":");
nodes.add(new HostAndPort(ipPortPair[0].trim(),Integer.valueOf(ipPortPair[1].trim())));
}
return new JedisCluster(nodes,redisProperties.getCommandTimeout());
}
}
最后:
spring boot整合----RedisClientTemplate
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class RedisClientTemplate {
private static final Logger log= LoggerFactory.getLogger(RedisClientTemplate.class);
@Autowired
private JedisClusterConfig jedisClusterConfig;
public boolean setToRedis(String key,Object value){
try {
String str=jedisClusterConfig.getJedisCluster().set(key, String.valueOf(value));
if("OK".equals(str)){
return true;
}
}catch (Exception ex){
log.error("setToRedis:{Key:"+key+",value"+value+"}",ex);
}
return false;
}
public Object getRedis(String key){
String str=null;
try {
str=jedisClusterConfig.getJedisCluster().get(key);
}catch (Exception ex){
log.error("getRedis:{Key:"+key+"}",ex);
}
return str;
}
}
注入:
@Resource
RedisClientTemplate redisClientTemplate;