Docker搭建redis集群(多机)

准备工作 下载doker和下载redis镜像以及redis配置文件请自行下载 没有版本要求默认最新

  • redis 常用配置文件参照
bind 127.0.0.1  #注释掉这部分,添加==》bind 0.0.0.0 ==》使redis可以外部访问
port 6380#端口号
dbfilename dump.rdb #默认rdb持久化名称
appendonly yes#redis持久化aof模式 默认是no
appendfilename "appendonly.aof" #默认aof持久化名称
protected-mode no   #将本机访问保护模式设置no
daemonize no#用守护线程的方式启动
requirepass 你的密码#给redis设置密码
replicaof 192.168.206.102 6379 #如果是从库 需要配置主库的ip
masterauth 123456 #主从复制的验证密码
tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
appendonly yes# aof是否开启, 需要手动设置为yes
pidfile /var/run/redis_6380.pid #pid文件
cluster-enabled yes   #开启集群
cluster-config-file nodes-6380.conf #配置文件
cluster-node-timeout 15000 #集群超时时间
  • 虚拟机配置
192.168.206.102:6379192.168.206.102:6380
192.168.206.103:6379192.168.206.103:6380
192.168.206.104:6379192.168.206.104:6380

一.修改配置文件

   1.端口6379的配置文件

#bind 127.0.0.1  #注释掉这部分,添加bind 0.0.0.0 
bind 0.0.0.0 #使redis可以外部访问
port 6379#端口号
protected-mode no   #将本机访问保护模式设置no
appendonly yes  #aof持久化
cluster-enabled yes  #开启集群
cluster-config-file nodes.conf #配置文件 
cluster-node-timeout 15000 #集群超时时间

  2.  端口6380的配置文件

#bind 127.0.0.1  #注释掉这部分,添加bind 0.0.0.0 
bind 0.0.0.0 #使redis可以外部访问
#端口号
port 6380
pidfile /var/run/redis_6380.pid  #启动pid
dbfilename dump6380.rdb     #rdb持久化保存文件名
appendfilename "appendonly6380.aof" #aof持久化保存文件名
protected-mode no   #将本机访问保护模式设置no
appendonly yes  #aof持久化
cluster-enabled yes  #开启集群
cluster-config-file nodes-6380.conf #配置文件 
cluster-node-timeout 15000 #集群超时时间

3.创建文件夹将配置文件放入conf下

mkdir /data/docker/redis/{conf,data} -p
cd /data/docker/redis

二.开启redis容器

1.端口6379启动命令 

# 创建并运行一个名为 myredis 的容器
docker run \
-p 6379:6379 \
-v /data/docker/redis/data:/data \
-v /data/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
--privileged=true --net host \
--name myredis \
-d redis redis-server /etc/redis/redis.conf\


# 命令分解
docker run \
-p 6379:6379 \ # 端口映射 宿主机:容器
-v $PWD/data:/data \ # 映射数据目录
-v $PWD/conf/redis.conf:/etc/redis/redis.conf: \ # 挂载配置文件
--privileged=true \ # 给与doker权限 不然启动不了
--net host \  #开启网络不然后面集群访问不到
--name myredis \ # 给容器起个名字
-d redis redis-server /etc/redis/redis.conf # deamon 运行容器 并使用配置文件启动容器内的 redis-server 

2.端口6380启动命令

# 创建并运行一个名为 myredis 的容器
docker run \
-p 6380:6380 \
-v /data/docker/redis/data:/data \
-v /data/docker/redis/conf/redis6380.conf:/etc/redis/redis.conf \
--privileged=true --net host \
--name myredis6380 \
-d redis redis-server /etc/redis/redis.conf\

3.确保六个redis全部启动。

开放端口   6379  6380  和redis总线端口(端口加10000)   16379  16380 四个端口

firewall-cmd --permanent --zone=public --add-port=6379/tcp #永久开放端口
firewall-cmd --permanent --zone=public --add-port=6380/tcp
firewall-cmd --permanent --zone=public --add-port=16379/tcp
firewall-cmd --permanent --zone=public --add-port=16380/tcp
firewall-cmd --reload  #重启防火墙

 四.开集群

   1.集群 =======》 需要开启所有端口号 6379 6380===》  外加总线集群 ==》

    总线端口加10000==》  16379 16380
    进入一个容器执行命令 (确保所有redis都是干净的没有多余数据)

     如果设置了密码或者用户名可以在 redis-cli 后面加  -u name  -a password 没有就不加

     注意:中间会让输入yes,不能只输入y

redis-cli  --cluster create 192.168.206.102:6379 192.168.206.102:6380 192.168.206.103:6379  192.168.206.103:6380 192.168.206.104:6379  192.168.206.104:6380 --cluster-replicas 1

2.进入任意一个服务查看集群信息
cluster nodes

 3. 连接集群数据库
redis-cli -c -h 192.168.0.111 -p 7001 

有密码的输入密码没有的直接使用

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值