Docker安装Redis
1 准备工作
1.1 参考
1.2 服务器安装Docker
需要先在Linux上安装Docker,Docker的安装步骤参见:Centos7安装docker。
1.3 创建数据和配置存放目录
# 创建 redis 配置存放目录
mkdir -p /opt/soft/redis/conf && chmod 777 /opt/soft/redis/conf
# 创建 redis 数据存放目录
mkdir -p /opt/soft/redis/data && chmod 777 /opt/soft/redis/data
1.4 编辑Redis配置文件
配置文件介绍:Redis 配置文件介绍
配置文件下载:Redis 配置文件下载
# 进入 redis 配置文件目录
cd /opt/soft/redis/conf
# 下载 redis 示例配置文件
wget http://download.redis.io/redis-stable/redis.conf
编辑配置文件,修改如下内容:
# 设置 redis 连接密码
requirepass 123456
# 【数据持久化配置 - 开始】
# 开启 AOF 持久化
appendonly yes
# AOF文件刷新的方式
# always 每提交一个修改命令都调用fsync刷新到AOF文件,非常非常慢,但也非常安全。
# everysec 每秒钟都调用fsync刷新到AOF文件,很快,但可能会丢失一秒以内的数据。
# no 依靠OS进行刷新,redis不主动刷新AOF,这样最快,但安全性就差。
appendfsync everysec
# 随着持久化的不断增多,AOF文件会越来越大,这个时候就需要AOF文件重写了。AOF文件重写
# 如果该参数取值为yes,那么在重写AOF文件时能提升性能,但可能在重写AOF文件时丢失数据。
# 如果取值为no,则不会丢失数据,但较取值为yes的性能可能会降低。默认取值是no。
no-appendfsync-on-rewrite no
# AOF文件重写
# 参数能指定重写的条件,默认是100,
# 即如果当前的AOF文件比上次执行重写时的文件大一倍时会再次触发重写操作。
# 如果该参数取值为0,则不会触发重写操作。
auto-aof-rewrite-percentage 100
# AOF文件重写
# 指定触发重写时AOF文件的大小,默认是64MB。
auto-aof-rewrite-min-size 64mb
# auto-aof-rewrite-percentage 和 auto-aof-rewrite-min-size 两个参数指定的重写条件是“And”的关系。
# 即只有当同时满足这两个条件时才会触发重写操作。
# 【数据持久化配置 - 结束】
# 绑定redis服务器网卡IP,默认为127.0.0.1,即本地回环地址。
# 这样的话,访问redis服务只能通过本机的客户端连接,而无法通过远程连接。
# 如果bind选项为空的话,那会接受所有来自于可用网络接口的连接。
# bind 172.0.0.4 127.0.0.1
# bind 127.0.0.1 -::1
#默认yes,开启保护模式,限制为本地访问,改为no,允许接受其他主机连接此redis。
protected-mode no
# Redis key 过期事件监听
notify-keyspace-events Ex
1.5 开放端口
- 开放6379端口的命令
firewall-cmd --zone=public --add-port=6379/tcp --permanent
- 重启防火墙
firewall-cmd --reload
- 查看开放的端口
firewall-cmd --list-port
1.6 选择Redis版本
通过Docker Hub可以查询Redis版本。这里使用最新的版本,即(docker pull redis:latest
)
2 Docker部署Redis
- 拉取Redis镜像
docker pull redis:latest
- Docker运行Redis
# 自定义启动 redis
docker run -d \
-p 6379:6379 \
--restart=always \
--name redis \
-v /opt/soft/redis/data:/data \
-v /opt/soft/redis/conf/redis.conf:/etc/redis/redis.conf \
redis:latest \
redis-server /etc/redis/redis.conf \
--appendonly yes
- 命令解释
docker run -d \ # 以后台方式运行一个 Docker 容器
-p 6379:6379 \ # 将容器内部的 Redis 服务端口 6379 映射到主机的端口 6379
--restart=always \ # 自动重启容器,包括Docker启动以及运行失败时
--name redis \ # 将容器命名为 "redis"
-v /opt/soft/redis/data:/data \ # 挂载 Redis 数据目录到容器内部的 /data
-v /opt/soft/redis/conf/redis.conf:/etc/redis/redis.conf \ # 挂载 Redis 配置文件到容器内部的 /etc/redis/redis.conf
redis:latest \ # 使用 Redis 镜像来运行容器
redis-server /etc/redis/redis.conf \ # 在容器内运行 Redis 服务端,并加载指定的配置文件 /etc/redis/redis.conf
--appendonly yes # 开启 AOF 持久化