哨兵集群
一、建立redis主从集群 启动多个redis,其他从属redis通过slaveof IP号 端口号绑定主redis,只有主redis可以写数据,其他从redis只能读取数据,同时自动会进行数据同步 二、搭建哨兵集群 1.复制多份redis,每一个redis新建一个sentinel.conf文件,并写入下面的代码
port 27001
sentinel monitor mymaster 127.0.0.1 7001 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 18000
2.启动命令,这里使用的window搭建的 redis2.x版本
redis-server sentinel.conf --sentinel
redis6.x版本
redis-sentinel sentinel.conf
三、springboot整合redis哨兵集群 1.yml 这里的nodes是哨兵集群的IP地址
spring:
redis:
sentinel:
master: mymaster
nodes:
- 127.0.0.1:27001
- 127.0.0.1:27002
- 127.0.0.1:27003
2.配置LettuceClientConfigurationBuilderCustomizer的Bean 其中ReadFrom.REPLICA_PREFERRED的方式是优先从slave节点读取数据,最后实在不行再从主redis中读取数据。
@Bean
public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
}
分片集群 一、编写redis.conf
port 7001
# 开启集群功能
cluster-enabled yes
# 集群的配置文件名称,不需要我们创建,由redis自己维护
cluster-config-file "/a1/nodes.conf"
# 节点心跳失败的超时时间
cluster-node-timeout 5000
# 持久化文件存放目录
dir "/a1"
# 绑定地址
bind 0.0.0.0
# 让redis后台运行
daemonize no
# 保护模式
protected-mode no
# 数据库数量
databases 1
二、启动各个redis服务 三、搭建集群 redis5.x版本以上使用以下命令
redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003
四、散列插槽、集群伸缩、故障转移(省略)
五、springboot整合redis哨兵集群 1.yml 这里的nodes是哨兵集群的IP地址
spring:
redis:
cluster:
nodes:
- 127.0.0.1:7001
- 127.0.0.1:7002
- 127.0.0.1:7003
- 127.0.0.1:8001
- 127.0.0.1:8002
- 127.0.0.1:8003
2.配置LettuceClientConfigurationBuilderCustomizer的Bean 其中ReadFrom.REPLICA_PREFERRED的方式是优先从slave节点读取数据,最后实在不行再从主redis中读取数据。
@Bean
public LettuceClientConfigurationBuilderCustomizer clientConfigurationBuilderCustomizer(){
return clientConfigurationBuilder -> clientConfigurationBuilder.readFrom(ReadFrom.REPLICA_PREFERRED);
}
|