Docker安装Redis
安装
拉取镜像(以Redis6.2.12为例)
docker pull redis:6.2.12
查看已拉取到本地的镜像
docker image ls
运行镜像(开启容器)
docker run --name redis_container_name -d redis:6.2.12
测试
进入容器
docker exec -ti redis_container_name bash
配置Redis持久化
场景
使用Docker拉取的Redis,从docker中启动redis容器,默认是没有配置文件的
持久化
- RDB:按照一定的时间间隔定时以快照的形式保存,也可主动触发
- AOF:以记录日志的方式进行保存
- Redis持久化方式,目前有RDB和AOF,默认的是RDB,具体每种的保存/实现/触发机制,以及优缺点,自行百度。
准备
- 去官网下载Reids中redis.conf的配置文件,总之想办法找一份redis.conf的配置文件
- 创建文件夹/Users/leo/docker/redis和/Users/leo/docker/redis/data用来存放数据(可以是其他位置,/Users/leo笔者Mac上的用户目录,等价于~目录,读者自行调整目录)
- 将redis.conf放到/Users/leo/docker/redis目录下
配置文件修改
注释掉bind,不然只能安装Redis本机访问
#bind 127.0.0.1
开启AOF持久化
appendonly yes
写入机制
#每次有修改就立刻写入
# appendfsync always
#每秒钟写入一次(推荐该方式)
appendfsync everysec
#让Redis自动判断
# appendfsync no
保存文件的名字,默认即可
appendfilename "appendonly.aof"
保存数据的位置
#当前目录,可选择其他目录
dir ./
配置连接密码
requirepass pwd123456
运行容器
docker run --restart=always -p 6379:6379 --name redis \
-v /Users/leo/docker/redis/redis.conf:/etc/redis/redis.conf \
-v /Users/leo/docker/redis/data:/data \
-d redis:6.2.12 \
redis-server /etc/redis/redis.conf --appendonly yes
参数说明:
- docker run:运行Docker镜像
- –restart=always:当docker重启时,该容器也会重新启动
- -p:映射端口号,宿主机端口映射到容器内部端口
- –appendonly yes:持久化
- –name redis:设置容器名称为redis
- -v /Users/leo/docker/redis/redis.conf:/etc/redis/redis.conf:将宿主机中redis.conf文件映射到docker中
- -v /Users/leo/docker/redis/data:/data:将容器的/data目录挂载到宿主机的/Users/leo/docker/redis/data目录(数据持久化)
- -d redis:6.2.12:选择运行的Docker镜像并指定Tag(不指定的话默认是latest)
- redis-server /etc/redis/redis.conf:以加载配置文件方式启动
测试
运行过之后,重启Redis服务,将会在/Users/leo/docker/redis/data文件夹中生成保存的文件