redis集群 与springboot 整合步骤 (linux版本)

(接上一篇)
整合时要用的配置
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;

猜你喜欢

转载自blog.csdn.net/cxy_chh/article/details/91473988