容器部署redis
1. 下载 Redis 镜像
# 下载镜像
docker pull docker.jepwei.us.kg/redis-5.0.14:v1.0
# 检查当前所有 Docker 下载的镜像
docker images
2. 创建 Redis 配置文件
2.1 注意事项:
启动前需先创建 Redis 外部挂载的配置文件(
/home/redis/conf/redis.conf)。需要提前创建配置文件,因为 Redis 容器内仅存在
/etc/redis目录,默认情况下不会创建redis.conf文件。当服务器和容器中都不存在
redis.conf文件时,执行启动命令时 Docker 会将redis.conf作为目录创建,这并不是我们所期望的结果。
# 创建目录
mkdir -p /home/docker/redis/conf
mkdir -p /home/docker/redis/data
chmod 777 /home/docker/redis/{conf,data}
# 创建文件
touch /opt/redis/conf/redis.conf
3. 创建 Redis 容器并启动
3.1 使用 docker-compose.yml 启动
services:
redis:
image: docker.jepwei.us.kg/redis-5.0.14:v1.0
container_name: redis
restart: always
logging:
options:
max-size: "100m"
max-file: "2"
ports:
- "6379:6379"
volumes:
- /home/docker/redis/conf/redis.conf:/etc/redis/redis.conf
- /home/docker/redis/data:/data
command: redis-server /etc/redis/redis.conf --appendonly yes
3.2 命令功能说明
4. 修改 Redis 配置文件
# 修改 /home/docker/redis/conf/redis.conf
protected-mode no
bind 0.0.0.0
requirepass qweqwe123
4.1 命令功能说明
6. 重启 Redis 服务
# 重启 redis 服务
docker restart redis
7. 使用 RDM 进行远程连接
在 RDM 中进行远程连接时,请确保 Redis 配置文件已正确设置,并且服务已重启。

8. 常见问题及解决方案
问题:无法连接到 Redis 服务
解决方案:检查防火墙设置,确保 6379 端口已开放,并确认 Redis 服务正在运行。
问题:Redis 服务启动失败
解决方案:查看 Docker 日志,使用
docker logs redis命令获取详细错误信息,检查配置文件是否正确。
问题:数据未持久化
解决方案:确保数据目录已正确挂载,并检查
redis.conf中的持久化设置是否已启用。
9. 参考资料
补充:如果需要完整原始的redis.conf可以用以下的配置。
bind 0.0.0.0
protected-mode no
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised no
pidfile /var/run/redis_6379.pid
loglevel notice
logfile ""
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir ./
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
requirepass qweqwe123
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble yes
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
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
hll-sparse-max-bytes 3000
stream-node-max-bytes 4096
stream-node-max-entries 100
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
dynamic-hz yes
aof-rewrite-incremental-fsync yes
rdb-save-incremental-fsync yes