docker-compose快速启动redis(单机版、三主三从集群)

前言
本文包括如下部分:
1)单机版
2)开发环境快速启动redis的一个方案。
3)容器快速启动一个伪集群

image.png

我的其它相关文档:
《kubernetes启动单机redis》
《helm启动radis-ha》

1. 单机版

1.1 docker-compose 文件

创建redis目录,目录下创建docker-compose.yml文件

version: "3.1"
services:
  redis:
    image: redis:4
    environment:
      TZ: Asia/Shanghai
    ports:
      - 6379:6379
    command: ["redis-server","/etc/redis/redis.conf"]
    restart: always
    volumes:
      - ./conf:/etc/redis/
      - ./data:/data

1.2 redis.conf

redis目录下创建conf目录,下边创建redis.cof文件如下

bind 0.0.0.0
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 0
#loglevel notice
#logfile "/redis/logs/redis.log"
databases 16
requirepass liubei@2021

1.3 启动

在redis目录下执行如下命令启动redis

 docker-compose up -d

启动之后,redis就可以正常使用了。

2 自动创建脚本

说明:
1)在宿主机中执行如下脚本,自动启动一个容器供开发测试使用。
2)执行过程中需要一些交互式输入:安装位置、密码、使用端口。
3)开发环境可从FTP或Http服务器上调用该脚本直接本地启动一个redis实例。

#!/bin/bash
########## 定义变量 ##########
read -p "输入安装的位置(回车默认/usr/local/redis ) " home_dir
if [ -z "${home_dir}" ];then
        home_dir=/usr/local/redis
fi

read -p "输入密码(回车默认liubei@2021):" redis_passwd
if [ -z "${redis_passwd}" ];then
        redis_passwd=liubei@2021
fi

read -p "输入端口(默认6379):" redis_port
if [ -z "${redis_port}" ];then
        redis_port=6379
fi

############## yml文件 ##################
mkdir ${home_dir} -p
cat > ${home_dir}/docker-compose.yml << EOF
version: "3.1"
services:
  redis:
    image: 10.252.xxx.xxx/public/redis:4
    environment:
      TZ: Asia/Shanghai
    ports:
      - ${redis_port}:6379
    command: ["redis-server","/etc/redis/redis.conf"]
    restart: always
    volumes:
      - ./conf:/etc/redis
      - ./data:/data
EOF

mkdir ${home_dir}/conf -p
chmod 755  ${home_dir}/conf
cat > ${home_dir}/conf/redis.conf << EOF
bind 0.0.0.0
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 0
#loglevel notice
#logfile "/redis/logs/redis.log"
databases 16
requirepass ${redis_passwd}
EOF
chmod 644  ${home_dir}/conf/redis.conf


cd ${home_dir}
docker-compose up -d
docker ps

3. redis启动一个伪集群

  • docker-compose.yml
    创建redis-cluster目录,目录下创建docker-compose.yml文件如下
version: '3.4'

x-image:
 &default-image
 publicisworldwide/redis-cluster
x-restart:
 &default-restart
 always
# 网络我用本地模式启动的你用桥接也没有问题,端口映射就可以了。
x-netmode:
 &default-netmode
 host

services:
 redis1:
  image: *default-image
  network_mode: *default-netmode
  restart: *default-restart
  volumes:
  - ./7001/data:/data
  environment:
  - REDIS_PORT=7001

 redis2:
  image: *default-image
  network_mode: *default-netmode
  restart: *default-restart
  volumes:
  - ./7002/data:/data
  environment:
  - REDIS_PORT=7002

 redis3:
  image: *default-image
  network_mode: *default-netmode
  restart: *default-restart
  volumes:
  - ./7003/data:/data
  environment:
  - REDIS_PORT=7003

 redis4:
  image: *default-image
  network_mode: *default-netmode
  restart: *default-restart
  volumes:
  - ./7004/data:/data
  environment:
  - REDIS_PORT=7004

 redis5:
  image: *default-image
  network_mode: *default-netmode
  restart: *default-restart
  volumes:
  - ./7005/data:/data
  environment:
  - REDIS_PORT=7005

 redis6:
  image: *default-image
  network_mode: *default-netmode
  restart: *default-restart
  volumes:
  - ./7006/data:/data
  environment:
  - REDIS_PORT=7006
  • 启动
# docker-compose up -d 
  • 查看结果
[root@dev-python redis-cluster]# docker-compose ps
         Name                       Command               State   Ports
-----------------------------------------------------------------------
redis-cluster_redis1_1   /usr/local/bin/entrypoint. ...   Up
redis-cluster_redis2_1   /usr/local/bin/entrypoint. ...   Up
redis-cluster_redis3_1   /usr/local/bin/entrypoint. ...   Up
redis-cluster_redis4_1   /usr/local/bin/entrypoint. ...   Up
redis-cluster_redis5_1   /usr/local/bin/entrypoint. ...   Up
redis-cluster_redis6_1   /usr/local/bin/entrypoint. ...   Up

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容