Docker安装Redis 6.0.5教程
大家好,我是曾续缘。在本教程中,我们将使用Docker来安装和配置Redis 6.0.5。
1. 拉取Redis镜像
首先,我们需要从Docker Hub上拉取Redis 6.0.5的官方镜像。打开终端,运行以下命令:
bash
docker pull redis:6.0.5
2. 创建Redis配置文件目录
接下来,我们需要创建Redis的配置文件、数据和日志的目录。
bash
mkdir -p /data/redis/conf
这个命令会创建/data
、/data/redis
和/data/redis/conf
目录,-p
选项允许创建嵌套的目录结构。
3. 创建和编辑Redis配置文件
使用 vim
编辑器创建并编辑 Redis 的配置文件 redis.conf
。
bash
vim /data/redis/conf/redis.conf
在
redis.conf
文件中,我们添加一系列 Redis 配置,包括但不限于:
- 关闭保护模式以允许外部网络访问。
- 设置 Redis 监听的端口号为 6379。
- 设置 Redis 密码为
redisroot
。 - 配置 RDB 和 AOF 持久化。
- 等等。
配置内容:
查看代码
bash
# 保护模式,设置为no可以关闭保护模式,允许外部网络访问
protected-mode no
# Redis监听的端口号
port 6379
# TCP监听的最大容纳数量
tcp-backlog 511
# Redis密码,强烈建议设置一个复杂的密码
requirepass redisroot
# 客户端闲置多少秒后断开连接,0表示不断开
timeout 0
# TCP保活策略,每隔多少秒发送一次ACK包,确认连接是否有效
tcp-keepalive 300
# 是否以守护进程方式运行,no表示不以后台进程方式运行
daemonize no
# 是否通过upstart或systemd管理,no表示不通过这些系统管理工具
supervised no
# 存储Redis进程号的文件路径
pidfile /var/run/redis_6379.pid
# 日志级别,notice表示普通级别
loglevel notice
# 日志文件路径,空字符串表示打印到标准输出
logfile ""
# 数据库数量,默认有16个
databases 30
# 是否显示启动LOGO
always-show-logo yes
# RDB持久化规则,例如在900秒内至少1个变更,300秒内至少10个变更,60秒内至少10000个变更时保存数据到磁盘
save 900 1
save 300 10
save 60 10000
# 在RDB持久化出错时停止写入操作
stop-writes-on-bgsave-error yes
# 是否对RDB文件进行压缩
rdbcompression yes
# 是否对RDB文件进行校验
rdbchecksum yes
# RDB文件名
dbfilename dump.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
# 各种lazy选项,控制Redis释放内存的速度和方式
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
# 自动触发AOF重写的最小文件大小
auto-aof-rewrite-min-size 64mb
# 当AOF文件损坏时是否仍能加载
aof-load-truncated yes
# 是否使用RDB前导来减少AOF文件大小
aof-use-rdb-preamble yes
# Lua脚本的最大执行时间
lua-time-limit 5000
# 慢查询日志的最大长度
slowlog-max-len 128
# Keyspace事件通知,空字符串表示不通知
notify-keyspace-events ""
# Hash类型相关配置,ziplist的条目数和大小限制
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
# List类型相关配置,ziplist的大小限制
list-max-ziplist-size -2
# List压缩深度
list-compress-depth 0
# Set类型相关配置,intset的条目数限制
set-max-intset-entries 512
# Zset类型相关配置,ziplist的条目数和大小限制
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
# HyperLogLog的sparse模式的最大字节数
hll-sparse-max-bytes 3000
# Stream类型节点的最大字节数和条目数限制
stream-node-max-bytes 4096
stream-node-max-entries 100
# 是否激活重置哈希
activerehashing yes
# 服务器周期性操作频率,hz
hz 10
# 是否根据实际负载动态调整周期性操作的频率
dynamic-hz yes
# AOF重写时是否使用增量fsync
aof-rewrite-incremental-fsync yes
# RDB保存时是否使用增量fsync
rdb-save-incremental-fsync yes
4. 启动Redis容器
配置完成后,我们使用 docker run
命令启动 Redis 容器。这个命令会创建一个新的 Redis 容器,并映射端口、挂载配置文件、数据目录和日志目录。
bash
docker run \
-p 6379:6379 \
--name redis \
-v /data/redis/conf/redis.conf:/etc/redis/redis.conf \
-v /data/redis/data:/var/lib/redis \
-v /data/redis/logs:/logs \
-d \
redis:6.0.5 redis-server /etc/redis/redis.conf --appendonly yes --requirepass redisroot
5. 连接到Redis服务器
使用 docker exec
命令进入 Redis 容器,并使用 redis-cli
命令连接到 Redis 服务器。由于我们设置了密码,我们需要使用 AUTH
命令进行认证。
bash
docker exec -it redis redis-cli
AUTH redisroot
现在,我们已经成功安装并配置了 Redis,并且可以使用
redis-cli
命令与其进行交互。
6. 使用GUI工具连接到Redis
除了使用命令行工具,我们还可以使用图形化工具进行连接。这里我们使用Navicat。打开Navicat,输入连接信息,点击“测试连接”。 至此,我们已经成功使用Docker安装了Redis 6.0.5,并进行了基本的配置。现在,我们可以在Redis中进行数据操作和查询了。