【Redis集群实战】Redis Cluster 部署

Redis Cluster 基本说明

首先,Redis Cluster 必须有三个以上 master 才能创建出来。
我们先设置三组 master服务。

配置步骤

服务器 端口 角色
192.168.1.220 6379 master
192.168.1.220 7379 slave
192.168.1.221 6379 master
192.168.1.221 7379 slave
192.168.1.222 6379 master
192.168.1.222 7379 slave

配置方面

master 的

port 6379
cluster-enabled yes                     #要打开集群开关
cluster-config-file nodes-cluster.conf  #配置配置文件 无需维护
cluster-node-timeout 5000
appendonly yes
daemonize no
protected-mode no
pidfile  /var/run/redis-cluster.pid
cluster-announce-ip 192.168.1.220       #对外ip。【你可以理解为选择哪个网络】

slave 的

port 7379
cluster-enabled no                      #这里关闭
appendonly yes
daemonize no
protected-mode no
pidfile  /var/run/redis.pid
slaveof 192.168.1.220 6379

docker-compose

version: '3.7'

x-image:
    &default-image
        image: redis:5.0.7

services:
    redis-master-cluster:
        <<: *default-image
        container_name: redis-master-cluster
        command:
            ["redis-server", "/home/redis/cluster/redis.conf"]
        volumes:
            - ./master-cluster.conf:/home/redis/cluster/redis.conf
            - ./master-data:/data
        ports:
            - 6379:6379
            - 16379:16379 #cluster 默认通信端口是 redis端口 + 10000,所以这个接口也要打开
    redis-slave-cluster:
        <<: *default-image
        container_name: redis-slave-cluster
        command:
            ["redis-server", "/home/redis/cluster/redis.conf"]
        volumes:
            - ./slave.conf:/home/redis/cluster/redis.conf
            - ./slave-data:/data
        ports:
            - 7001:7379

然后 使用 docker-compose 开启容器

docker compose up -d

最后开启 cluster

我们要使用 redis-cli 来配置 cluster。
1、先进入一个主节点

docker exec -it your_master_container_name /bin/bash

-i 表示交互式输入【interactive】,作用是保持标准输入打开,使得用户可以通过终端向容器内部进程发送消息

-t 表示分配伪终端,可以让容器内的进程在一个类似终端的环境中运行有了伪终端,容器内的命令行界面会更加友好,例如可以支持彩色输出、正确处理终端控制字符(如退格# 键、箭头键等)。如果没有-t选项,在容器内执行一些需要终端支持的命令可能会出现问题。

2、连接三台服务器

redis-cli --cluster create 192.168.1.220:6379 192.168.1.221:6379 192.168.1.222:6379 --cluster-replicas 0


--cluster-replicas 0 最后的 0 表示 一个主master 创建的 副本节点数量。我们这里做测试所以不需要。

测试

用客户端连接测试

> set k1 hahaha
MOVED 12706 192.168.1.222:6379
> set k2 heiheihei
OK
> set k3 wuwuwu
OK
> set k4 haohaohao
MOVED 8455 192.168.1.221:6379

这里发现 第一次输入的被移到 222 服务器上了。
而 k2, k3 则正常。

img

posted @ 2024-11-22 00:10  大俗XD  阅读(39)  评论(0编辑  收藏  举报