1.目录结构
docker-compose和redis相关的目录和文件存储结构如下:
myProject ----项目名
├── compose
│ └── docker-compose.yml ----compose配置文件
└── redis
├── data ----redis数据存储目录
├── logs ----redis日志文件目录(redis.conf中logfile设置相对路径则不需要)
└── redis.conf ----redis配置文件
2.redis.conf配置文件内容
使用官方的redis.conf配置文件没搞定(可能是redis版本有差异,个别参数不匹配),这里我们直接将主要参数提取出来。
#开启远程可连接
#bind 127.0.0.1
#自定义密码
requirepass 12345678
#指定 Redis 监听端口(默认:6379)
port 6379
#客户端闲置指定时长后关闭连接(单位:秒。0:关闭该功能)
timeout 0
# 900s内如果至少一次写操作则执行bgsave进行RDB持久化操作
save 900 1
# 在300s内,如果至少有10个key进行了修改,则进行持久化操作
save 300 10
#在60s内,如果至少有10000个key进行了修改,则进行持久化操作
save 60 10000
#是否压缩数据存储(默认:yes。Redis采用LZ 压缩,如果为了节省 CPU 时间,可以关闭该选项,但会导致数据库文件变的巨大)
rdbcompression yes
#指定本地数据文件名(默认:dump.rdb)
dbfilename dump.rdb
#指定本地数据文件存放目录
dir /data
#指定日志文件位置(如果是相对路径,redis会将日志存放到指定的dir目录下)
logfile "redis.log"
3.docker-compose.yml配置文件内容
version: "3.8"
services:
redis:
# 镜像及版本
image: redis:6.2.6
# 自定义容器名
container_name: my-redis
# docker启动时,自动启动该容器
restart: always
# 挂载映射,可以让数据或配置持久化
volumes:
# <本地配置文件> : <docker中的配置文件> : <ro:docker容器对该文件只读,默认是rw可读可写>
- ../redis/redis.conf:/etc/redis/redis.conf:ro
# <本地数据目录> : <docker中的数据目录>
- ../redis/data:/data
# <本地日志目录> : <docker中的日志目录>
# redis不具有自动创建/logs的权限,如果redis.conf中指定的相对位置,则数据目录已经可以映射出日志文件
#- ../redis/logs:/logs
# docker执行的启动命令
command: redis-server /etc/redis/redis.conf
ports:
# <本地端口> : <docker容器端口>
- 6378:6379
4. docker-compose启动和关闭
# cd compose
# docker-compose up
// 或以后台方式启动
# docker-compose up -d
// 关闭docker-compose
# docker-compose down
5. 检查redis启动情况
直接使用客户端RDM连接redis;
也可以先通过命令检查一下:
// 查看容器
# docker ps
// 查看端口
# netstat -ntlp
6.查看redis容器的CPU和内存使用状态
# docker stats my-redis
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
0631151ef5d8 my-redis 0.05% 1.766MiB / 3.7GiB 0.05% 13kB / 55.1kB 0B / 8.19kB 6