切换主题
Docker 安装Redis
快捷启动
shell
docker run --rm -d --name redis -p 6379:6379 redis --requirepass "your_password"
命令介绍
docker run
: 这是 Docker 命令的一部分,用于运行一个容器。--rm
: 这个选项告诉 Docker 在容器停止运行后自动删除容器。这意味着当你停止 Redis 容器时,相关的数据和配置都会被删除。-d
: 这个选项告诉 Docker 在后台运行容器,即“detached”模式,使得容器在后台运行而不占用你的终端窗口。--name redis
: 这个选项为容器指定一个名称,这里是“redis”,你可以用这个名称来管理和引用容器。-p 6379:6379
: 这个选项指定了端口映射,将 Redis 容器的6379端口映射到主机的6379端口,这样外部就可以通过主机的6379端口访问 Redis 服务。redis
: 这是要运行的 Docker 镜像的名称,即 Redis 镜像。Docker 会从 Docker Hub 下载 Redis 镜像(如果本地没有的话)并在容器中运行它。--requirepass "your_password"
: 这个选项设置了 Redis 的访问密码为 "your_password"。这个密码在连接 Redis 时需要提供,以保护 Redis 数据免受未经授权的访问。
配置启动
创建文件夹
shell
mkdir -p /home/docker/redis/{data,conf}
设置权限
shell
sudo chown -R root /home/docker/redis
创建redis.conf
shell
sudo vim /home/docker/redis/conf/redis.conf
提示
若提示sudo: vim:找不到命令
或 sudo: vim:command not find
则去下载vim工具,然后再去创建redis.conf并粘贴内容
```shell
sudo yum install vim -y
```
redis.conf配置
# 开启无保护模式,允许远程连接
protected-mode no
# 监听端口
port 6379
# TCP 连接的最大等待队列长度
tcp-backlog 511
# Redis 访问密码,建议设置复杂密码
requirepass qwe123
# 连接超时时间
timeout 0
# TCP 保活时间
tcp-keepalive 300
# 是否以守护进程方式运行
daemonize no
# 是否以守护进程方式运行的另一种配置方式
supervised no
# 进程 ID 文件路径
pidfile /var/run/redis_6379.pid
# 日志级别
loglevel notice
# 日志文件路径
logfile ""
# 数据库数量
databases 30
# 是否总是显示 Redis 标志
always-show-logo yes
# RDB 持久化策略
save 900 1
save 300 10
save 60 10000
# 在后台保存时出错是否停止写入
stop-writes-on-bgsave-error yes
# 是否启用 RDB 压缩
rdbcompression yes
# 是否启用 RDB 校验
rdbchecksum yes
# RDB 文件名
dbfilename dump.rdb
# RDB 文件保存路径
dir ./
# 复制节点是否服务过期数据
replica-serve-stale-data yes
# 复制节点是否只读
replica-read-only yes
# 是否启用磁盘无关同步
repl-diskless-sync no
# 是否禁用 TCP NoDelay
repl-disable-tcp-nodelay no
# 复制节点优先级
replica-priority 100
# 是否启用惰性释放机制
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
# 是否启用 AOF 持久化
appendonly yes
# AOF 文件名
appendfilename "appendonly.aof"
# 在 AOF 重写时是否关闭 fsync
no-appendfsync-on-rewrite no
# AOF 重写的触发条件
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 是否允许加载被截断的 AOF 文件
aof-load-truncated yes
# AOF 使用 RDB 头部
aof-use-rdb-preamble yes
# Lua 脚本执行时间限制
lua-time-limit 5000
# 慢查询日志最大长度
slowlog-max-len 128
# 通知的事件类型
notify-keyspace-events ""
# 压缩列表中哈希表的最大元素数量
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
# 压缩列表中列表的最大大小
list-max-ziplist-size -2
# 列表压缩深度
list-compress-depth 0
# 整数集合的最大元素数量
set-max-intset-entries 512
# 压缩列表中有序集合的最大元素数量
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
# HyperLogLog 稀疏编码最大字节数
hll-sparse-max-bytes 3000
# Stream 节点的最大字节数和最大条目数
stream-node-max-bytes 4096
stream-node-max-entries 100
# 激活 rehashing
activerehashing yes
# 定期执行的执行频率
hz 10
# 动态调整 hz
dynamic-hz yes
# AOF 重写是否增量 fsync
aof-rewrite-incremental-fsync yes
# RDB 保存是否增量 fsync
rdb-save-incremental-fsync yes
启动redis
shell
docker run -d --name redis \
-p 6379:6379 \
-v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /home/docker/redis/data:/data \
--restart=always \
redis redis-server /etc/redis/redis.conf --appendonly yes
命令介绍
-d
: 以“detached”模式运行容器,使容器在后台持续运行而不占用当前终端窗口。--name redis
: 为容器指定名称为redis
,以便后续管理和操作。-p 6379:6379
: 将容器内的 Redis 服务端口(默认为6379)映射到主机的6379端口,使得可以通过主机的6379端口访问 Redis 服务。-v /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf
: 将主机上的 Redis 配置文件redis.conf
挂载到容器内的/etc/redis/redis.conf
路径,让 Redis 容器使用指定的配置文件进行启动和配置。-v /home/docker/redis/data:/data
: 将主机上的/home/docker/redis/data
目录挂载到容器内的/data
目录,用于持久化存储 Redis 的数据文件,使得 Redis 容器中的数据可以持久化到主机上的指定目录。--restart=always
: 设置容器的重启策略为始终重启,即当容器退出时自动重新启动。redis
: 指定要运行的 Docker 镜像名称为redis
,表示从 Docker Hub 下载 Redis 镜像。redis-server /etc/redis/redis.conf --appendonly yes
: 指定 Redis 容器启动命令,告诉 Redis 服务器在容器内使用/etc/redis/redis.conf
配置文件启动,并开启 AOF(Append Only File)持久化模式(--appendonly yes
)。
开放端口
开放端口6379端口
shellfirewall-cmd --zone=public --add-port=6379/tcp --permanent
重启防火墙
shellfirewall-cmd --reload
命令介绍
若是云服务器,需要在云服务厂商哪里开放规则