Springboot操作redis集群的工具类

  最近一直在做SpringCloud的项目,由于用到了redis集群,所以就想着写一个操作redis集群的工具类来。废话不多说,直接上干货。

  第一,redis的地址配置:

#redis cluster
spring.redis.cache.clusterNodes=192.168.10.4:7000,192.168.10.4:7001,192.168.10.4:7002,192.168.10.4:7000,192.168.10.4:7003,192.168.10.4:7004,192.168.10.4:7005
spring.redis.cache.commandTimeout=5000

第二步:加载配置

@Component
@ConfigurationProperties(prefix = "spring.redis.cache")
class RedisProperties {

	private String clusterNodes;
	private Integer   commandTimeout;
	public String getClusterNodes() {
		return clusterNodes;
	}
	public void setClusterNodes(String clusterNodes) {
		this.clusterNodes = clusterNodes;
	}
	public Integer getCommandTimeout() {
		return commandTimeout;
	}
	public void setCommandTimeout(Integer commandTimeout) {
		this.commandTimeout = commandTimeout;
	}


}

第三步: 得到JedisCluster工具

@Configuration
@ConditionalOnClass({ JedisCluster.class})
@EnableConfigurationProperties(RedisProperties.class)
public class JedisClusterConfig {
	    @Autowired
	    private RedisProperties redisProperties;

	    @Bean
	    public JedisCluster getJedisCluster() {
	        String[] serverArray = redisProperties.getClusterNodes().split(",");
	        Set<HostAndPort> nodes = new HashSet<HostAndPort>();
	        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());
	    }
}

第四步:测试

  @Autowired
    private JedisCluster jedisCluster;
jedisCluster.set("key","value");
jedisCluster.hset("id","key","value");
还有很多功能根据自己的需要去用即可!


发布了48 篇原创文章 · 获赞 60 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/u011051912/article/details/80747562