linux搭建redis集群

在一台linux服务器上面搭建集群,3个master和3个slave节点

1、拉取镜像

docker pull public.ecr.aws/docker/library/redis:7.4

  2、创建文件夹在配置文件

安装好redis镜像后,此时redis还只是单体,我们需要搭建集群,集群配置如下:

docker端口号→宿主机对外暴露的端口:7000→7000,7001→7001,7002→7002,7003→7003,7004→7004,7005→7005
挂载目录:data(数据) → /usr/local/docker/redis/端口号/data/
conf(配置文件)→ /usr/local/docker/端口号/redis.conf
集群模式:三主三从
节点容器名称:redis-7000,redis-7001,redis-7002,redis-7003,redis-7004,redis-7005
回到linux,首先创建好挂载目录

# 批量创建redis节点7000-7005目录
mkdir -p /usr/local/docker/redis/700{0,1,2,3,4,5}/data

  然后分别创建个节点的配置文件,并添加配置信息

vim /usr/local/docker/redis/7000/redis.conf

# 添加以下配置信息

port 7000
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 20000
bind 0.0.0.0
cluster-announce-ip 121.36.67.37
cluster-announce-port 7000
cluster-announce-bus-port 17000

				

----------------------------------------------------------------------
配置说明:
port # 节点端口
protected-mode # 保护模式,默认值 yes,即开启
daemonize # 是否以守护线程的方式启动(后台启动),默认 no;
appendonly # 是否开启 AOF 持久化模式,默认 no;
cluster-enabled # 是否开启集群模式,默认 no
cluster-config-file # 集群节点信息文件
cluster-node-timeout # 集群节点连接超时时间(ms)

  创建7000节点配置文件后将它复制到其他节点目录下,注意复制到其他目录需要将配置文件的port改为该节点的端口号

cp /usr/local/docker/redis/7000/redis.conf /usr/local/docker/redis/7001
cp /usr/local/docker/redis/7000/redis.conf /usr/local/docker/redis/7002
cp /usr/local/docker/redis/7000/redis.conf /usr/local/docker/redis/7003
cp /usr/local/docker/redis/7000/redis.conf /usr/local/docker/redis/7004
cp /usr/local/docker/redis/7000/redis.conf /usr/local/docker/redis/7005

  启动容器:

# 创建7000节点容器
docker run  -v /data/redis/7000/redis.conf:/etc/redis/redis.conf -v /data/redis/7000/data:/data --name redis-7000 --net host -d 65750d044ac8 redis-server /etc/redis/redis.conf

docker run  -v /data/redis/7001/redis.conf:/etc/redis/redis.conf -v /data/redis/7001/data:/data --name redis-7001 --net host -d 65750d044ac8 redis-server /etc/redis/redis.conf

docker run -v /data/redis/7002/redis.conf:/etc/redis/redis.conf -v /data/redis/7002/data:/data --name redis-7002 --net host -d 65750d044ac8 redis-server /etc/redis/redis.conf

docker run -v /data/redis/7003/redis.conf:/etc/redis/redis.conf -v /data/redis/7003/data:/data --name redis-7003 --net host -d 65750d044ac8 redis-server /etc/redis/redis.conf

docker run -v /data/redis/7004/redis.conf:/etc/redis/redis.conf -v /data/redis/7004/data:/data --name redis-7004 --net host -d 65750d044ac8 redis-server /etc/redis/redis.conf

docker run -v /data/redis/7005/redis.conf:/etc/redis/redis.conf -v /data/redis/7005/data:/data --name redis-7005 --net host -d 65750d044ac8 redis-server /etc/redis/redis.conf

特别注意:进入到某个容器内部:
docker exec -it 5584157f1bbe  /bin/bash redis-cli --cluster create --cluster-replicas 1 121.36.67.37:7000 121.36.67.37:7001 121.36.67.37:7002 121.36.67.37:7003 121.36.67.37:7004 121.36.67.37:7005

  

 

 验证集群:

root@flexusx-9c0c-0002:/data# redis-cli -p 7000
127.0.0.1:7000> cluster nodes
0a31c214aeed9eb65b109a799a7d95a72c613e9a 192.168.0.115:7001@17001 master - 0 1744687509000 2 connected 5461-10922
de05dfc2116ed444ebd2062e5eb02380fe79512b 192.168.0.115:7003@17003 slave 94e480eb4028453a726f84a11d4b115ea6ff73bb 0 1744687508000 1 connected
92f518d6eae27a86ca2d8bab0f2d08438bcf8b23 192.168.0.115:7002@17002 master - 0 1744687509404 3 connected 10923-16383
4793ea582c1b7a90bca2522f795a9d3fdb584ebd 192.168.0.115:7004@17004 slave 0a31c214aeed9eb65b109a799a7d95a72c613e9a 0 1744687507000 2 connected
d9023e6075c3bea88a5c547f597c38824d523b72 192.168.0.115:7005@17005 slave 92f518d6eae27a86ca2d8bab0f2d08438bcf8b23 0 1744687506000 3 connected
94e480eb4028453a726f84a11d4b115ea6ff73bb 192.168.0.115:7000@17000 myself,master - 0 0 1 connected 0-5460

  参考:https://blog.csdn.net/web17886480312/article/details/146030607

posted @ 2025-04-15 11:32  刘百会  阅读(130)  评论(0)    收藏  举报