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
- 注意事项
- 是src下的redis-cli,不是bin下的.
- -replicas 1表示一个master拖一个salve,比如我现在是6个节点,那么前三个就是master,后三个是salve。
- IP最好使用外网IP,我测试的时候原本填写的127.0.0.1,结果Springboot连接redis集群时连接不上。
执行上边的命令后中间有个停顿输入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