ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

在三台服务器上搭建redis集群

2022-09-01 15:34:34  阅读:197  来源: 互联网

标签:-- 三台 redis usr sentinel 服务器 docker local


Redis集群

参考-->redis

分别在三台主机上创建如下文件和文件夹

mkdir -p /usr/local/docker/redis
cd /usr/local/docker/redis
touch docker-compose.yaml
vim docker-compose.yaml
192.168.86.58的docker-compose.yaml

version: '3'
services:
  master:
    image: redis
    container_name: redis-master
    restart: always
    command: redis-server --port 6379 --requirepass test1234 --masterauth test1234 --appendonly yes
    ports:
      - 6379:6379
    privileged: true
    volumes:
      - /usr/local/docker/redis/data:/data
      - /usr/local/docker/redis/conf/:/usr/local/etc/redis/

192.168.86.19的docker-compose.yaml

version: '3'
services:
  redis-slave1:
    image: redis
    container_name: redis-slave1
    restart: always
    command: redis-server --slaveof 192.168.86.58 6379 --port 6379 --requirepass test1234 --masterauth test1234 --appendonly yes
    ports:
      - 6379:6379
    privileged: true
    volumes:
      - /usr/local/docker/redis/data:/data
      - /usr/local/docker/redis/conf/:/usr/local/etc/redis/

192.168.86.43的docker-compose.yaml

version: '3'
services:
  redis-slave2:
    image: redis
    container_name: redis-slave2
    restart: always
    command: redis-server --slaveof 192.168.86.58 6379 --port 6379 --requirepass test1234 --masterauth test1234 --appendonly yes
    ports:
      - 6379:6379
    privileged: true
    volumes:
      - /usr/local/docker/redis/data:/data
      - /usr/local/docker/redis/conf/:/usr/local/etc/redis/

参数解释:
privileged: true 权限
requirepass test1234 访问本机需要的密码
masterauth test1234 作为从机访问主机的密码
appendonly yes 是否持久化

docker-compose up -d 后台启动
后面可以用docker ps查看容器是否正常启动
docker-compose down 关闭

进入docker exec -it redis-master bash
输入redis-cli

如果你更改了端口号,在进入集群的时候,要使用redis-cli -p 端口号(如果是6379就不用加-p)

在输入info

哨兵模式

在/usr/local/docker/redis这个目录下创建新的文件夹sentinel
mkdir sentinel
cd sentinel
touch sentinel.conf
touch docker-compose.yml

192.168.86.63的sentinel.conf编写:(其他两台服务器也可以使用26379,因为从属不同的服务器)

# bind 127.0.0.1 192.168.1.1
# protected-mode no
port 26379
#daemonize yes
#pidfile /var/run/redis-sentinel.pid
logfile "sentinel.log"
sentinel monitor redis-master 192.168.86.58 6379 2
sentinel auth-pass redis-master test1234
sentinel down-after-milliseconds redis-master 10000

sentinel announce-ip "192.168.86.58"
sentinel announce-port 26379

sentinel deny-scripts-reconfig yes

其他两台的配置文件和上面的一样

docker-compose.yaml文件
192.168.86.58

version: '3'
services:
  redis-sentinel-1:
    image: redis
    container_name: redis-sentinel-1
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    ports:
      - 26379:26379
	privileged: true
    volumes:
      - /usr/local/docker/redis/sentinel:/usr/local/etc/redis/

192.168.86.19

version: '3'
services:
  redis-sentinel-2:
    image: redis
    container_name: redis-sentinel-2
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    ports:
      - 26379:26379
	privileged: true
    volumes:
      - /usr/local/docker/redis/sentinel:/usr/local/etc/redis/

192.168.86.43

version: '3'
services:
  redis-sentinel-3:
    image: redis
    container_name: redis-sentinel-3
    command: redis-sentinel /usr/local/etc/redis/sentinel.conf
    ports:
      - 26379:26379
	privileged: true
    volumes:
      - /usr/local/docker/redis/sentinel:/usr/local/etc/redis/	

启动哨兵:docker-compose up -d

进入哨兵的容器中:
docker exec -it 容器名称 bash
进去集群: redis-cli -p 26379(你设置的端口,我设置的是26379)
输入:info查看当前的配置信息

标签:--,三台,redis,usr,sentinel,服务器,docker,local
来源: https://www.cnblogs.com/linjiangplus/p/16646643.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有