Docker Redis Cluster

Docker 安装

  1. Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
    通过 uname -r 命令查看你当前的内核版本
 $ uname -r
  1. 使用 root 权限登录 Centos。确保 yum 包更新到最新。
$ yum update
  1. 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ yum install -y yum-utils device-mapper-persistent-data lvm2
  1. 设置yum源
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

  1. 可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
  1. 安装docker
# 安装最新版本
$ yum install docker-ce  
# 安装指定版本, 如:yum install docker-ce-18.06.3.ce-3.el7
$ yum install  
  1. 启动并加入开机启动
$ systemctl start docker
$ systemctl enable docker
  1. 验证安装
$ docker --version
  1. 安装docker-compose命令,redis用的这个来安装的
curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

Redis安装

  1. 拉取镜像
docker pull publicisworldwide/redis-cluster
docker pull inem0o/redis-trib
  1. 创建启动配置文件, redis cluster 6个节点,三个master,三个slave
    创建目录
mkdir /opt/docker/redis/conf

创建redis配置文件

vi /opt/docker/redis/conf/redis-8001.conf

redis配置

port 8001
dir ./
logfile "8001.log"
dbfilename "dump-8001.rdb"
cluster-enabled yes
cluster-config-file nodes-8001.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no

附录:每个文件都要重新创建修改一次,这样很麻烦,在这里我们直接用这个命令就可以

sed 's/8001/8011/g' redis-8001.conf > redis-8011.conf
创建docker-compose.yml
vi /opt/docker/redis/conf/docker-compose.yml

docker-compose.yml 配置

version: '3'
services:
 redis1:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker/redis/8001/data:/data
   - /opt/docker/redis/conf/redis-8001.conf:/etc/redis/redis.conf
  environment:
   - REDIS_PORT=8001
 redis2:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker/redis/8002/data:/data
   - /opt/docker/redis/conf/redis-8002.conf:/etc/redis/redis.conf
  environment:
   - REDIS_PORT=8002
 redis3:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker/redis/8003/data:/data
   - /opt/docker/redis/conf/redis-8003.conf:/etc/redis/redis.conf
  environment:
   - REDIS_PORT=8003
 redis4:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker/redis/8004/data:/data
   - /opt/docker/redis/conf/redis-8004.conf:/etc/redis/redis.conf
  environment:
   - REDIS_PORT=8004
 redis5:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker/redis/8005/data:/data
   - /opt/docker/redis/conf/redis-8005.conf:/etc/redis/redis.conf
  environment:
   - REDIS_PORT=8005
 redis6:
  image: publicisworldwide/redis-cluster
  network_mode: host
  restart: always
  volumes:
   - /opt/docker/redis/8006/data:/data
   - /opt/docker/redis/conf/redis-8006.conf:/etc/redis/redis.conf
  environment:
   - REDIS_PORT=8006
  1. 启动服务,一定要在/opt/docker/redis/conf/下执行下面命令
 # 窗口模式
docker-compose up
# 后台进程
docker-compose up -d
  1. 集群配置
docker run --rm -it inem0o/redis-trib create --replicas 1 192.168.50.110:8001 192.168.50.110:8002 192.168.50.110:8003 192.168.50.110:8004 192.168.50.110:8005 192.168.50.110:8006
集群配置成功
  1. 查看redis-trib使用
docker run --rm -it inem0o/redis-trib help
  • create:创建集群
  • check:检查集群
  • info:查看集群信息
  • fix:修复集群
  • reshard:在线迁移slot
  • rebalance:平衡集群节点slot数量
  • add-node:将新节点加入集群
  • del-node:从集群中删除节点
  • set-timeout:设置集群节点间心跳连接的超时时间
  • call:在集群全部节点上执行命令
  • import:将外部redis数据导入集群

你可能感兴趣的:(Docker Redis Cluster)