千城网站建设,工作室建设基础,wordpress cms教程,阿里云建设网站教程一、准备工作
两台Centos7服务器#xff08;虚拟机即可#xff09; 192.168.32.131#xff08;主#xff09;192.168.32.129#xff08;从#xff09; 两台服务器安装DockerDocker下载Redis镜像
二、Redis配置主从节点
1、131服务器安装Redis主节点
创建Redis配置文件…一、准备工作
两台Centos7服务器虚拟机即可 192.168.32.131主192.168.32.129从 两台服务器安装DockerDocker下载Redis镜像
二、Redis配置主从节点
1、131服务器安装Redis主节点
创建Redis配置文件和数据挂载目录
mkdir -p /data/redisMastercd /data/redisMastertouch myredis.confvim myredis.confmyredis.conf配置文件内容
# 允许任何IP访问
bind 0.0.0.0
# 关闭保护模式
protected-mode no
# 设置端口号
port 6380
timeout 0
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec# 设置Redis密码
# requirepass 123456# 设置外部访问IP如果不加其他IP访问会报错
slave-announce-ip 192.168.32.131Docker启动Redis主节点命令
docker run --restartalways \
--log-opt max-size100m \
--log-opt max-file2 \
-p 6380:6380 \
--name redisMaster \
-v /data/redisMaster/myredis.conf:/etc/redis/redis.conf \
-v /data/redisMaster/data:/data \
-d redis redis-server /etc/redis/redis.conf2、131服务器安装Redis从节点1
大体步骤与主节点类似配置文件略有不同请仔细观看
mkdir -p /data/redisSlave1cd /data/redisSlave1touch myredis.confvim myredis.confbind 0.0.0.0
protected-mode no
port 6381
timeout 0
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
slave-announce-ip 192.168.32.131
# 设置主节点IP和端口号
replicaof 192.168.32.131 6380docker run --restartalways \
--log-opt max-size100m \
--log-opt max-file2 \
-p 6381:6381 \
--name redisSlave1 \
-v /data/redisSlave1/myredis.conf:/etc/redis/redis.conf \
-v /data/redisSlave1/data:/data \
-d redis redis-server /etc/redis/redis.conf3、131服务器安装Redis从节点2
大体步骤与主节点类似配置文件略有不同请仔细观看
mkdir -p /data/redisSlave2cd /data/redisSlave2touch myredis.confvim myredis.confbind 0.0.0.0
protected-mode no
port 6382
timeout 0
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
slave-announce-ip 192.168.32.131
# 设置主节点IP和端口号
replicaof 192.168.32.131 6380docker run --restartalways \
--log-opt max-size100m \
--log-opt max-file2 \
-p 6382:6382 \
--name redisSlave2 \
-v /data/redisSlave2/myredis.conf:/etc/redis/redis.conf \
-v /data/redisSlave2/data:/data \
-d redis redis-server /etc/redis/redis.conf4、129服务器安装Redis从节点3
大体步骤与主节点类似配置文件略有不同请仔细观看
mkdir -p /data/redisSlave3cd /data/redisSlave3touch myredis.confvim myredis.conf
bind 0.0.0.0
protected-mode no
port 6383
timeout 0
save 900 1
save 300 10
save 60 10000
rdbcompression yes
dbfilename dump.rdb
dir /data
appendonly yes
appendfsync everysec
slave-announce-ip 192.168.32.129
# 设置主节点IP和端口号
replicaof 192.168.32.131 6380
docker run --restartalways \
--log-opt max-size100m \
--log-opt max-file2 \
-p 6383:6383 \
--name redisSlave3 \
-v /data/redisSlave3/myredis.conf:/etc/redis/redis.conf \
-v /data/redisSlave3/data:/data \
-d redis redis-server /etc/redis/redis.conf5、验证主从节点配置正确性
docker exec -it redisMaster bashredis-cli -p 6380info Replication如果上述配置没问题的话正常可以看到主从节点的所有信息。
三、Docker安装Sentinel监听Redis
1、131服务器安装Sentinel1、Sentinel2、Sentinel3
创建配置文件存放目录、创建配置文件、编辑sentinel配置文件
mkdir -p /data/sentinel1
mkdir -p /data/sentinel2
mkdir -p /data/sentinel3touch /data/sentinel1/sentinel1.conf
touch /data/sentinel2/sentinel2.conf
touch /data/sentinel3/sentinel3.confsentinel1.conf配置文件内容
# 关闭保护模式
protected-mode no
# 配置端口号各个节点不能相同
port 26379
daemonize no
pidfile /var/run/redis-sentinel.pid
loglevel notice
# 日志存放地址
logfile /var/tmp/sentinel.log
dir /tmp
# 外部IP访问地址解决Docker-Net容器IP跨服务器无法访问问题
sentinel announce-ip 192.168.32.131
# 设置Redis主节点信息
sentinel monitor mymaster 192.168.32.131 6380 2
sentinel down-after-milliseconds mymaster 30000
acllog-max-len 128
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
SENTINEL resolve-hostnames no
SENTINEL announce-hostnames no
SENTINEL master-reboot-down-after-period mymaster 0sentinel2.conf配置文件内容
# 关闭保护模式
protected-mode no
# 配置端口号各个节点不能相同
port 26380
daemonize no
pidfile /var/run/redis-sentinel.pid
loglevel notice
# 日志存放地址
logfile /var/tmp/sentinel.log
dir /tmp
# 外部IP访问地址解决Docker-Net容器IP跨服务器无法访问问题
sentinel announce-ip 192.168.32.131
# 设置Redis主节点信息
sentinel monitor mymaster 192.168.32.131 6380 2
sentinel down-after-milliseconds mymaster 30000
acllog-max-len 128
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
SENTINEL resolve-hostnames no
SENTINEL announce-hostnames no
SENTINEL master-reboot-down-after-period mymaster 0sentinel3.conf配置文件内容
# 关闭保护模式
protected-mode no
# 配置端口号各个节点不能相同
port 26381
daemonize no
pidfile /var/run/redis-sentinel.pid
loglevel notice
# 日志存放地址
logfile /var/tmp/sentinel.log
dir /tmp
# 外部IP访问地址解决Docker-Net容器IP跨服务器无法访问问题
sentinel announce-ip 192.168.32.131
# 设置Redis主节点信息
sentinel monitor mymaster 192.168.32.131 6380 2
sentinel down-after-milliseconds mymaster 30000
acllog-max-len 128
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
SENTINEL resolve-hostnames no
SENTINEL announce-hostnames no
SENTINEL master-reboot-down-after-period mymaster 02、129服务器安装Sentinel4
mkdir -p /data/sentinel4cd /data/sentinel4touch sentinel4.confvim sentinel4.confsentinel4.conf配置文件内容
# 关闭保护模式
protected-mode no
# 配置端口号各个节点不能相同
port 26382
daemonize no
pidfile /var/run/redis-sentinel.pid
loglevel notice
# 日志存放地址
logfile /var/tmp/sentinel.log
dir /tmp
# 外部IP访问地址解决Docker-Net容器IP跨服务器无法访问问题
sentinel announce-ip 192.168.32.129
# 设置Redis主节点信息
sentinel monitor mymaster 192.168.32.131 6380 2
sentinel down-after-milliseconds mymaster 30000
acllog-max-len 128
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
SENTINEL resolve-hostnames no
SENTINEL announce-hostnames no
SENTINEL master-reboot-down-after-period mymaster 03、启动四个Sentinel节点
131主服务器启动命令
docker run --name sentinel1 \
-v /data/sentinel1/sentinel1.conf:/usr/local/etc/redis/sentinel.conf \
-d --nethost redis redis-sentinel /usr/local/etc/redis/sentinel.confdocker run --name sentinel2 \
-v /data/sentinel2/sentinel2.conf:/usr/local/etc/redis/sentinel.conf \
-d --nethost redis redis-sentinel /usr/local/etc/redis/sentinel.confdocker run --name sentinel3 \
-v /data/sentinel3/sentinel3.conf:/usr/local/etc/redis/sentinel.conf \
-d --nethost redis redis-sentinel /usr/local/etc/redis/sentinel.conf129从服务器启动命令
docker run --name sentinel4 \
-v /data/sentinel4/sentinel4.conf:/usr/local/etc/redis/sentinel.conf \
-d --nethost redis redis-sentinel /usr/local/etc/redis/sentinel.conf4、验证Sentinel配置正确性
docker exec -it sentinel1 bashredis-cli -p 26379info Sentinel四、SpringBoot配置文件连接Redis集群
spring:redis:sentinel:nodes: - 192.168.31.131:26379- 192.168.31.131:26380- 192.168.31.131:26381- 192.168.31.129:26382#连接超时时间毫秒timeout: 30000jedis:pool:#连接池最大阻塞等待时间使用负值表示没有限制max-wait: -1#连接池中的最小空闲连接min-idle: 0#连接池中的最大空闲连接max-idle: 8#连接池最大连接数使用负值表示没有限制max-active: 8