docker 安装配置 redis
拉取 Redis 官方镜像:
# 拉取最新版 Redis(推荐)
docker pull redis:latest# 或者拉取指定版本,如 7.2、6.2(生产推荐固定版本)
# docker pull redis:7.2
# docker pull redis:6.2
查看已拉取的镜像:
docker images
创建用于存放 Redis 配置和数据的目录:
mkdir -p /usr/local/redis/{conf,data,logs}cd /usr/local/redis/conf#创建 Redis 配置文件 redis.conf
touch redis.conf#查看redis.conf
ls#编写内容
vim redis.conf
将内容粘贴redis.conf:
# Redis服务器配置
# 绑定IP地址(表示Redis会监听所有网络接口,必须设置密码)
bind 0.0.0.0# 服务器端口号
port 6379 #配置密码,不要可以删掉
requirepass syf133618# 不以守护进程方式运行(Docker 要求)
daemonize no# 持久化文件目录(挂载到了 /data)
dir /data#默认为no,redis持久化,可以改为yes
appendonly yes#当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能
timeout 60
# 服务器系统默认配置参数影响 Redis 的应用
maxclients 10000
tcp-keepalive 300#指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合(分别表示900秒(15分钟)内有1个更改,300秒(5分钟)内有10个更改以及60秒内有10000个更改)
save 900 1
save 300 10
save 60 10000# 按需求调整 Redis 线程数
tcp-backlog 511# 设置数据库数量,默认设置为16个数据库
databases 255# 启用 AOF, AOF常规配置
appendonly yes
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb# 慢查询阈值
slowlog-log-slower-than 10000
slowlog-max-len 128# 是否记录系统日志,默认为yes
syslog-enabled yes #指定日志记录级别,Redis支持四个级别:debug、verbose、notice、warning,默认为verbose
loglevel notice
# 日志输出文件,默认为stdout,也可以指定文件路径
logfile stdout
# 日志文件
#logfile /logs/redis.log# 系统内存调优参数
# 按需求设置
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-entries 512
list-max-ziplist-value 64
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
运行 Redis 容器(挂载配置与数据卷):
docker run -d \--name my-redis \--restart unless-stopped \-p 6379:6379 \-v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf \-v /usr/local/redis/data:/data \-v /usr/local/redis/logs:/logs \redis:7.2 \redis-server /etc/redis/redis.conf
解释:
–restart unless-stopped :设置容器的 自动重启策略
-v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf:将宿主机上的 Redis 配置文件挂载到容器内的 Redis 配置路径
-v /usr/local/redis/data:/data:将宿主机上的目录挂载为 Redis 的 数据存储目录
-v /usr/local/redis/logs:/logs:将宿主机上的目录挂载为 Redis 的 日志目录
检查容器是否运行:
docker ps
进入容器内部的 redis-cli:
docker exec -it my-redis redis-cli
密码认证:
AUTH yourStrongPassword123
测试简单命令:
PING
#返回 PONG即表示 Redis 正常工作