前言
本文包括如下部分:
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