SpringBoot如何高效集成Redis集群以应对长尾流量需求?

2026-04-02 00:191阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计505个文字,预计阅读时间需要3分钟。

SpringBoot如何高效集成Redis集群以应对长尾流量需求?

一、安装Redis集群步骤参考网上教程,Mac环境下安装步骤参考https://github.com/muyl/mac-docker-rediscluster

二、创建Springs

一、安装Redis集群

SpringBoot如何高效集成Redis集群以应对长尾流量需求?

步骤参考网上教程,Mac环境下安装步骤参考https://github.com/muyl/mac-docker-rediscluster

二、安装Redis集群步骤参考网上教程,Mac环境下安装步骤参考https://github.com/muyl/mac-docker-rediscluster

一、安装Redis集群安装步骤参照网上教程,Mac安装步骤参照github.com/muyl/mac-docker-redis-cluster

二、创建SpringBoot工程

  • 创建Redis配置类

    package com.example.chapterredis.common.config;import org.apache.commons.pool2.impl.GenericObjectPoolConfig;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import redis.clients.jedis.HostAndPort;import redis.clients.jedis.JedisCluster;import java.util.HashSet;import java.util.Set;/** * @author tony */@Configurationpublic class RedisConfiguration { private static final Logger logger = LoggerFactory.getLogger(RedisConfiguration.class); @Value("${spring.redis.clusterNodes}") private String clusterNodes; @Value("${spring.redis.password}") private String auth; @Value("${spring.redis.pool.maxActive}") private Integer maxTotal; @Value("${spring.redis.pool.minIdle}") private Integer minIdle; @Value("${spring.redis.pool.maxIdle}") private Integer maxIdle; @Value("${spring.redis.pool.maxWait}") private Long maxWaitMillis; @Value("${spring.redis.pool.commandTimeout}") private int commandTimeout; @Bean public JedisCluster jedisCluster() { String[] serverArray = clusterNodes.split(","); Set nodes = new HashSet(); for (String ipPort : serverArray) { String[] ipPortPair = ipPort.split(":"); nodes.add(new HostAndPort(ipPortPair[0].trim(), Integer.valueOf(ipPortPair[1].trim()))); } if (!nodes.isEmpty()) { String password = getAuth(auth); logger.info("redis password:{}", password); GenericObjectPoolConfig pool = new GenericObjectPoolConfig(); pool.setMaxTotal(maxTotal); pool.setMinIdle(minIdle); pool.setMaxIdle(maxIdle); pool.setMaxWaitMillis(maxWaitMillis); return new JedisCluster(nodes, commandTimeout, commandTimeout, 5, password, pool); } return null; } private String getAuth(String auth) { return "".equals(auth) ? null : auth; }}
  • SpringBoot属性文件

    spring.redis.clusterNodes=localhost:7000,localhost:7001,localhost:7002,localhost:7003,localhost:7004,localhost:7005spring.redis.password=spring.redis.pool.maxActive=5spring.redis.pool.minIdle=5spring.redis.pool.maxIdle=1spring.redis.pool.maxWait=3000spring.redis.pool.commandTimeout=5000
  • SpringBoot启动类

    package com.example.chapterredis;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class ChapterRedisApplication { public static void main(String[] args) { SpringApplication.run(ChapterRedisApplication.class, args); }}
  • 测试类

    package com.example.chapterredis;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import redis.clients.jedis.JedisCluster;@RunWith(SpringRunner.class)@SpringBootTest(classes={ChapterRedisApplication.class})public class ChapterRedisApplicationTests { @Autowired private JedisCluster jedisCluster; @Test public void test2() { jedisCluster.set("aaa","123"); System.out.println(jedisCluster.get("aaa")); }}
  • 三、工程源代码

    gitee.com/shanksV/chapter-redis.git

    比你优秀的人比你还努力,你有什么资格不去奋斗!!!

    本文共计505个文字,预计阅读时间需要3分钟。

    SpringBoot如何高效集成Redis集群以应对长尾流量需求?

    一、安装Redis集群步骤参考网上教程,Mac环境下安装步骤参考https://github.com/muyl/mac-docker-rediscluster

    二、创建Springs

    一、安装Redis集群

    SpringBoot如何高效集成Redis集群以应对长尾流量需求?

    步骤参考网上教程,Mac环境下安装步骤参考https://github.com/muyl/mac-docker-rediscluster

    二、安装Redis集群步骤参考网上教程,Mac环境下安装步骤参考https://github.com/muyl/mac-docker-rediscluster

    一、安装Redis集群安装步骤参照网上教程,Mac安装步骤参照github.com/muyl/mac-docker-redis-cluster

    二、创建SpringBoot工程

  • 创建Redis配置类

    package com.example.chapterredis.common.config;import org.apache.commons.pool2.impl.GenericObjectPoolConfig;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import redis.clients.jedis.HostAndPort;import redis.clients.jedis.JedisCluster;import java.util.HashSet;import java.util.Set;/** * @author tony */@Configurationpublic class RedisConfiguration { private static final Logger logger = LoggerFactory.getLogger(RedisConfiguration.class); @Value("${spring.redis.clusterNodes}") private String clusterNodes; @Value("${spring.redis.password}") private String auth; @Value("${spring.redis.pool.maxActive}") private Integer maxTotal; @Value("${spring.redis.pool.minIdle}") private Integer minIdle; @Value("${spring.redis.pool.maxIdle}") private Integer maxIdle; @Value("${spring.redis.pool.maxWait}") private Long maxWaitMillis; @Value("${spring.redis.pool.commandTimeout}") private int commandTimeout; @Bean public JedisCluster jedisCluster() { String[] serverArray = clusterNodes.split(","); Set nodes = new HashSet(); for (String ipPort : serverArray) { String[] ipPortPair = ipPort.split(":"); nodes.add(new HostAndPort(ipPortPair[0].trim(), Integer.valueOf(ipPortPair[1].trim()))); } if (!nodes.isEmpty()) { String password = getAuth(auth); logger.info("redis password:{}", password); GenericObjectPoolConfig pool = new GenericObjectPoolConfig(); pool.setMaxTotal(maxTotal); pool.setMinIdle(minIdle); pool.setMaxIdle(maxIdle); pool.setMaxWaitMillis(maxWaitMillis); return new JedisCluster(nodes, commandTimeout, commandTimeout, 5, password, pool); } return null; } private String getAuth(String auth) { return "".equals(auth) ? null : auth; }}
  • SpringBoot属性文件

    spring.redis.clusterNodes=localhost:7000,localhost:7001,localhost:7002,localhost:7003,localhost:7004,localhost:7005spring.redis.password=spring.redis.pool.maxActive=5spring.redis.pool.minIdle=5spring.redis.pool.maxIdle=1spring.redis.pool.maxWait=3000spring.redis.pool.commandTimeout=5000
  • SpringBoot启动类

    package com.example.chapterredis;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class ChapterRedisApplication { public static void main(String[] args) { SpringApplication.run(ChapterRedisApplication.class, args); }}
  • 测试类

    package com.example.chapterredis;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import redis.clients.jedis.JedisCluster;@RunWith(SpringRunner.class)@SpringBootTest(classes={ChapterRedisApplication.class})public class ChapterRedisApplicationTests { @Autowired private JedisCluster jedisCluster; @Test public void test2() { jedisCluster.set("aaa","123"); System.out.println(jedisCluster.get("aaa")); }}
  • 三、工程源代码

    gitee.com/shanksV/chapter-redis.git

    比你优秀的人比你还努力,你有什么资格不去奋斗!!!