docker 搭建redis集群

docker 搭建redis集群

第一步 安装docker

第二步 安装docker-compose

这里就不出安装教程了

第三步 下载一份redis安装包

个人喜欢下免安装版的,下载地址

https://github.com/redis/redis/archive/5.0.8.tar.gz

拿到配置文件,修改配置文件
温馨提示:
1.vim 编辑器下 / 可以搜索内容

#第一处位置
#注释绑定id  允许所有ip访问
#bind 127.0.0.1

#第二处位置
#修改端口
port 6379

#第三处位置
#修改相应位置  这个文件是redis 自己维护的文件  修改 redis_端口
pidfile /var/run/redis_6379.pid

#第四处位置
#开启集群
cluster-enabled yes

第四步 修改 docer-compose.yml

温馨提示:
1.liunx是不认识win 的 tab键 需要把 tab 缓存4个空格

    #容器名
    redis6381:
        #依赖镜像 如果下载镜像失败的话就换个版本
        image: redis:6.2
        #容器别名 与容器名保持一致
        container_name: "redis6381"
        ports:
        #主机端口 映射到容器端口
            - 6381:6381
        volumes:
        #文件映射  主机文件映射到容器里面
            - /usr/local/redis:/redis
        command:
        #容器启动是执行的命令
            redis-server /redis/redis6381.conf
        #container内的root拥有真正的root权限
        privileged: true
        extra_hosts:
        #主机别名
            - my_host:192.168.1.67
        #网络模式 这里网络模式使用host的原因是  redis节点需要添加到redis里面
        #然后不使用 host模式  当项目跑起来的时候你就会发现  连接redis是失败的
        network_mode: "host"
    redis6380:
        image: redis:6.2
        container_name: "redis6380"
        ports:
            - 6380:6380
        volumes:
            - /usr/local/redis:/redis 
        command:
            redis-server /redis/redis6380.conf
        privileged: true
        extra_hosts:
            - my_host:192.168.1.67
        network_mode: "host"
    redis6379:
        image: redis:6.2
        container_name: "redis6379"
        ports:
            - 6379:6379 
        volumes:
            - /usr/local/redis:/redis 
        command:
            redis-server /redis/redis6379.conf
        privileged: true
        extra_hosts:
            - my_host:192.168.1.67
        network_mode: "host"

第五步 修改完配置文件装载容器了

#  -d 是后台启动的参数
docker-compose up -d  redis6379 redis6380 redis6381

第六步 连接上redis 添加redis节点

#连接上redis
 .\redis-cli.exe -h 92.168.1.67 -p 6379
 
添加节点
CLUSTER MEET 192.168.1.67 6379
CLUSTER MEET 192.168.1.67 6380
CLUSTER MEET 192.168.1.67 6381
#查看集群节点
CLUSTER NODES
#查看集群情况
CLUSTER info
#这时候集群是不健康的

需要给redis集群 分配槽点
创建addslots.sh文件
温馨提示:
1.liunx 需要装有redis,才能执行下面代码文件

#!/bin/bash
#将0-5461的槽点配置在(宿主机192.168.1.67:6379)的redis上
#for ((i=0; i<=5461; i ++))
for i in `seq 0 5461`
do
   echo "$i"
   redis-cli -h 192.168.1.67 -p 6379  CLUSTER ADDSLOTS $i
done

#将5462-10922的槽点配置在(宿主机192.168.1.67:6380)的redis上
#for ((i=5462; i<=10922; i ++))
for i in `seq 5462 10922`
do
   echo "$i"
   redis-cli -h 192.168.1.67 -p 6380  CLUSTER ADDSLOTS $i
done

#将10923-16383的槽点配置在(宿主机192.168.1.67:6381)的redis上
#for ((i=10923; i<=16383; i ++))
for  i in `seq 10923 16383`
do
   echo "$i"
   redis-cli -h 192.168.1.67 -p 6381  CLUSTER ADDSLOTS $i
done

但是没装怎么办呢
addslots.sh 把这个文件放到redis文件里面 映射到容器里面

第七步 进入docker 容器里面

#进入容器命令
docker exec -it redis6379 bash

#进入redis文件夹
cd /redis

#执行命令 分配redis槽点
sh addslots.sh

#退出容器命令
exit

第八步 测试 redis可用

#查看redis集群情况
CLUSTER info
set userName zhangsan
#ok

set userNane zhangsan
# MOVED 5622

第二个set是不成功的 为什么呢
这是另一篇博客提的问题

https://blog.csdn.net/weixin_41891696/article/details/123813011

我们需要用集群模式连接redis

.\redis-cli.exe -h 92.168.1.67 -p 6379  -c

set userNane zhangsan
#ok
移除redis节点
 cluster forget  节点id

到此结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值