从0开始搭建redis cluster集群

从0开始搭建redis cluster集群

1、VMware Workstation Pro 15安装centos7 系统版本CentOS-7-x86_64-Minimal-2003.iso 这是教程,我跟着做的,网卡那一刻特别要注意配置,不然ping命令不通的

2、安装docker

3、安装redis

docker19搭建rediscluster5集群

1. 拉取镜像

docker pull redis

如果需要拉取指定版本,需要在redis后面添加版本号,如果不指定则拉取最新版本镜像,可以使用docker search redis来搜索镜像

在这里插入图片描述

如果想指定某个版本的redis的话,这里好像没办法显示, 所以你可以去这个网站搜索对应的版本。或者在百度搜索docker pull redis看到一个Docker hub的就是了。

在这里插入图片描述

我下载了5.0.8所以使用的命令是docker pull redis:5.0.8,然后如果下载过程真的很慢,那就配置镜像地址,

cd /etc/docker  找到daemon.json文件,如果没有就新建一个:复制进去

{

    "registry-mirrors":["https://almtd3fa.mirror.aliyuncs.com"]      

}

systemctl docker restart重启docker就可以啦

2.开始创建redis配置文件模板

mkdir -p /home/redis-cluster
# redis-cluster保存配置文件
cd /home/redis-cluster
#创建配置文件保存文件夹
mkdir -p /home/redis-cluster/7001/conf
#创建 db文件保存文件夹
mkdir -p mkdir -p /home/redis-cluster/7001/data

下面是需要配置的redis.conf配置文件配置简要说明:

# 注释掉 bind 127.0.0.1
port ${PORT}
protected-mode no
cluster-enabled yes
cluster-config-file node-${PORT}.conf
cluster-node-timeout 15000
cluster-announce-ip 192.168.135.129
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
appendonly yes
requirepass foobared
port端口
cluster-config-file node-${PORT}.conf这个是自动生成的,应该是关于集群的信息,包括集群中其他机器的信息
cluster-enabled yes
cluster-node-timeout 15000节点存活超时时长,超过一定时长,认为节点宕机,master宕机的话,就会触发主备切换,slaver宕机就不会提供服务,单位毫秒
cluster-announce-ip
cluster-announce-port
cluster-announce-bus-port总线端口,一般是默认使用端口+1万
appendonly yes开启持久化模式
requirepass密码,如果你没有设置密码的话, bind就会生效,就是代表限制这个ip的来登录,除非你设置 protected-mode no来关掉它(保护模式
protected-mode no关闭保护模式

切记不要在上面将daemonize yes改为yes,不然启动后的redis会一直处于重启状态,,

如果想看更详细的配置文件详解

然后呢,大家不要下载原版的配置文件,用记事本找出上面的配置项进行修改,如果复制进去使用docker会有奇怪的问题,比如启动成功了,但配置视乎不生效,比如没发现有aof文件,所以我就亲自到官网下载了redis5.0.8的源码下来,讲配置文件复制出来按照自己上述的配置i进行修改,然后upload到服务器上再用docker跑

3.使用配置文件构建redis容器

创建文件夹放配置文件和数据文件

/home/redis-cluster/7001/conf/redis.conf# 讲你修改好的配置文件copy到这,如果没这个文件夹就创建

/home/redis-cluster/7001/data# 这个文件夹保存rdb文件,aof文件

**执行下列命令:**构建7001的容器

docker run -it -d -p 7001:7001 -p 17001:17001 \
  --privileged=true -v /home/redis-cluster/7001/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  --privileged=true -v /home/redis-cluster/7001/data:/data \
  --sysctl net.core.somaxconn=1024 --net host \
  --restart always --name redis-7001 975fe4b9f798 redis-server /usr/local/etc/redis/redis.conf

-d 代表后台启动

-p 7001:7001代表讲宿主机的端口映射到容器的端口

-v 就是文件夹映射,讲宿主机的配置文件映射到容器内部,然后你就可以使用本机的文件进行启动

然后容器产生的rdb,aof,你也可以在宿主机查看,不用进入容器内部才能查看

–privileged=true 赋予权限

–restart always 这个容器伴随着docker的启动而启动

–name redis-7001 975fe4b9f798 就是你这个容器叫什么名字 后面的975fe4b9f798,是我拉起的镜像的ID

redis-server /usr/local/etc/redis/redis.conf 使用这个配置文件启动,

效果图

在这里插入图片描述

docker logs ff就是ff是生成的容器的id,你输入前面几个字母也可以的,docker能识别得到,不必全部复制进去

4.搭建集群

重复上述步骤,搞3台虚拟机,一台7001 7001,一台7003 7004 一台7005 7006,可以在同一台机器上配置,

我搭建了2个小时可算是搭建完成:

在这里插入图片描述

5. 创建集群

进入一个容器节点

docker exec -it redis_7001 /bin/bash

创建集群命令:

redis-cli -a foobared --cluster create 192.168.135.129:7001 192.168.135.130:7003 192.168.135.131:7005 192.168.135.129:7002 192.168.135.130:7004 192.168.135.131:7006 --cluster-replicas 1

注:因为我们开启了Redis密码认证,所以需要在这里-a foobared指明密码,其中foobared就是本人设置的密码。

注:–cluster-replicas 1中,1代表的是一个master有一个slave;前三个ip是master,后三个ip是对应的slave。

在这里插入图片描述

ps:内核参数调优

下列参数你可以在宿主机配置的,也可以在构造容器的时候添加进去,

1.vm.overcommit_memory

0: 检查有没有足够内存,没有的话申请内存失败

1: 允许使用内存直到用完为止

2: 内存地址空间不能超过swap + 50%

如果是0的话,可能导致fork等操作失败,申请不到足够的内存空间

怎么修改和查看这个参数呢?

cat /proc/sys/vm/overcommit_memory

默认是0的,你可以改为1

2.swapiness

cat /proc/version,查看linux内核版本

如果linux内核版本<3.5,那么swapiness设置为0,这样系统宁愿swap也不会oom killer(杀掉进程)
如果linux内核版本>=3.5,那么swapiness设置为1,这样系统宁愿swap也不会oom killer

保证redis不会被杀掉

echo 0 > /proc/sys/vm/swappiness

echo vm.swapiness=0 >> /etc/sysctl.conf

3. 最大打开文件句柄

ulimit -n 10032 10032

这个建议配置宿主机就好, 容器感觉不配置的好

4. tcp baklog

cat /proc/sys/net/core/somaxconn

echo 511 > /proc/sys/net/core/somaxconn

参考资料

[使用docker搭建redis-cluster环境](https://www.cnblogs.com/surpassme/p/11832438.html)

Redis配置数据持久化—APPEND ONLY MODE

[Docker搭建redis-cluster集群三主三备](https://www.cnblogs.com/lfl17718347843/p/12332396.html)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值