数据库
首页 > 数据库> > Redis5.0搭建集群(阿里云服务器)并使用Springboot连接

Redis5.0搭建集群(阿里云服务器)并使用Springboot连接

作者:互联网

本人工作之余学习记录。
redis5.0以上搭建集群非常的方便,不需要ruby环境。

1.安装Redis

教程有好多,这里就不赘述了。我这里使用的是5.0.7的版本。安装在/usr/local/redis目录。
在这里插入图片描述

2.配置redis.conf

进入到redis的安装目录找到redis.conf,我一般不直接在原来的配置文件修改,复制一份,命名redis-7000.conf,打算部署7000-7005一共6个节点,每个节点的配置文件名就是端口名。

cp redis.conf redis-7000.conf
2.1 主要做一下修改
#端口号
port 7000
#后台启动
daemonize yes
#允许远程连接
protected-mode no
#不限制IP
注释掉bind 127.0.0.1或改为bind 0.0.0.0
#指定文件存储的位置,aof文件什么的
dir /usr/local/redis/data
#开启集群模式
cluster-enabled yes
cluster-node-timeout 15000
cluster-config-file nodes-7000.conf
2.2 复制6份
#复制一份并将文件里的7000全改为7001
sed "s/7000/7001/g" redis-7000.conf > redis-7001.conf
#剩余4个一样的操作
2.3 启动redis节点

将每个redis节点都启动起来

bin/redis-server 配置文件,比如我这里是/usr/local/redis/conf/redis-7000.conf,6个全部起起来。

在这里插入图片描述

2.4 创建redis集群

我使用的是阿里云服务器,需要在阿里云后台安全组和服务器的防火墙中将7000-7005,17000-17005开发。(17000-17005是redis集群总线产生的端口:客户端通信端口 + 10000)

#查看防火墙状态:
firewall-cmd --state
#防火墙开放端口
firewall-cmd --zone=public --add-port=端口/tcp --permanent
#刷新防火墙:
firewall-cmd --reload
./src/redis-cli -a 密码 --cluster create 你的IP:7000 你的IP:7001 你的IP:7002 你的IP:7003 你的IP:7004 你的IP:7005  --cluster-replicas 1

执行上边的命令后中间有个停顿输入yes即可。

3.最后贴上Springboot的配置

springboot版本:2.3.4.RELEASE

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

配置项

spring.redis.cluster.nodes= IP:7000,IP:7001,IP:7002,IP:7003,IP:7004,IP:7005
spring.redis.database = 3
spring.redis.password= 密码
spring.redis.timeout = 60000ms
spring.redis.lettuce.pool.max-idle = 10
spring.redis.lettuce.pool.min-idle = 5
spring.redis.lettuce.pool.max-active = 10
spring.redis.lettuce.pool.max-wait = 5000
spring.redis.lettuce.shutdown-timeout = 10000
spring.redis.lettuce.testOnBorrow = true

java配置类

@Configuration
@ConfigurationProperties(prefix = "spring.redis.cluster")
public class RedisClusterConfig {

    private Set<String> nodes;
    
    @Value("${spring.redis.lettuce.pool.max-idle}")
    private int maxIdle;
    @Value("${spring.redis.lettuce.pool.min-idle}")
    private int minIdle;
    @Value("${spring.redis.lettuce.pool.max-wait}")
    private long maxWait;
    @Value("${spring.redis.lettuce.pool.max-active}")
    private int maxActive;
    @Value("${spring.redis.password}")
    private String password;

    /**
     * 创建一个Redis连接工厂
     * @return
     */
    @Bean
    public RedisConnectionFactory lettuceConnectionFactory() {

        RedisClusterConfiguration redisClusterConfiguration= new RedisClusterConfiguration(nodes);
        redisClusterConfiguration.setPassword(password);
        
        GenericObjectPoolConfig genericObjectPoolConfig = new GenericObjectPoolConfig();
        genericObjectPoolConfig.setMaxIdle(maxIdle);
        genericObjectPoolConfig.setMinIdle(minIdle);
        genericObjectPoolConfig.setMaxTotal(maxActive);
        genericObjectPoolConfig.setMaxWaitMillis(maxWait);

        LettucePoolingClientConfiguration lettuceClientConfiguration = LettucePoolingClientConfiguration.builder()
                .poolConfig(genericObjectPoolConfig)
                .build();
        return new LettuceConnectionFactory(redisClusterConfiguration, lettuceClientConfiguration);
    }



    public void setNodes(Set<String> nodes) {
        this.nodes = nodes;
    }

}

标签:Springboot,IP,redis,lettuce,Redis5.0,conf,spring,服务器,7000
来源: https://blog.csdn.net/qq_44990290/article/details/113377208