Redis 是一款开源的高性能键值数据库,常用于缓存、排行榜、消息队列等场景。在 Linux 环境中,我们可以通过 Docker 快速部署 Redis 实例,避免繁琐的编译与配置过程。本文将手把手带你在 Linux 下使用 Docker 安装并运行 Redis。
一、前提条件
在开始之前,请确保你的 Linux 系统中已经安装好了 Docker。如果尚未安装,可以参考docker安装
二、拉取 Redis 镜像
Docker Hub 上提供了 Redis 的官方镜像,我们只需一条命令即可获取:
docker pull redis
默认会拉取最新版本的 Redis 镜像。你也可以指定版本号,例如 redis:6.2
三、配置以及运行 Redis 容器
拉下镜像之后,点击下面地址选择自己需要的 redis 版本的配置文件,也可以直接使用我的。https://redis.io/docs/management/config/
提前在服务器建立 /data/redis 文件夹,touch 文件redis.conf,如果使用Xshell可以直接导入config文件,需要注意存放的位置即可
得到conf文件后,要看一下里面的内容,针对性的配置一下下面4个参数,有些在conf中自带的就不需要配置了:
bind 0.0.0.1 #使redis可以被任意ip访问daemonize no #用守护线程的方式启动
requirepass lihaha1234 #密码 给redis设置密码;注意:密码一定不能为root!!!!
appendonly yes #redis持久化 默认是no
tcp-keepalive 300 #防止出现远程主机强迫关闭了一个现有的连接的错误 默认是300
注意:Redis的密码在配置文件的requirepass指令中设置。修改redis.conf文件,并搜索requirepass
启动命令
docker run -p 6379:6379 \
--name redis \
-v /home/service/redis/redis.conf:/etc/redis/redis.conf \
-v /home/service/redis/data:/data \
-d redis \
redis-server /etc/redis/redis.conf --appendonly yes
具体参数含义解释:
1docker run:启动一个新的容器。
2-p 6379:6379:将主机的 6379 端口映射到容器的 6379 端口,允许外部访问 Redis 服务。
3--name redis:为容器指定一个名称 redis。
4-v /xxx/redis/redis.conf:/etc/redis/redis.conf:将主机路径(具体看自己的config文件在哪) /xxx/redis/redis.conf 挂载到容器路径 /etc/redis/redis.conf。这样可以使用主机上的 Redis 配置文件。
5-v /xxx/redis/data:/data:将主机路径 /usr/local/data/redis/data 挂载到容器路径 /data。这样 Redis 数据会存储在主机的这个目录下,以便数据持久化。
6-d:以守护进程模式运行容器,即容器在后台运行。
7redis:指定要使用的 Docker 镜像,默认是从 Docker Hub 拉取最新的 Redis 镜像。
8redis-server /etc/redis/redis.conf:在容器中执行 redis-server 命令,并指定使用 /etc/redis/redis.conf 作为配置文件启动 Redis 服务。
9--appendonly yes:附加参数,启用 Redis 的 AOF(Append-Only File)持久化模式,这将确保 Redis 每次写操作后都会将数据追加到文件中,以确保数据的持久性。
四、如何设置防火墙不拦截 Redis 端口(默认是 6379)
假如你部署的 Linux 系统使用的是 ufw
或 firewalld
,可以参考以下两种方式配置防火墙:
🔹 1. 使用 ufw
(Ubuntu 常用)
# 查看防火墙状态
sudo ufw status
# 允许 6379 端口通过
sudo ufw allow 6379/tcp
# 重启防火墙
sudo ufw reload
🔹 2. 使用 firewalld
(CentOS、RedHat 常用)
# 开启 6379 端口(永久生效)
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
# 重新加载防火墙规则
sudo firewall-cmd --reload
# 查看已开放的端口
sudo firewall-cmd --list-ports
🔸注意安全: 如果你的 Redis 服务对外开放,建议配合设置密码或配置白名单,防止被恶意访问。
如果是云服务器,记得在安全组那里,开放自己容器的端口
最后远程测试
五、其他注意事项
1、重置config配置
记得先删除自己的镜像和容器
# 删除镜像
docker rmi redis
# 删除容器
docker rm -f -v redis
2、docker redis配置文件要与redis镜像版本保持一致
配置主从复制和读写分离的话:
pidfile路径:/var/run/自己设置的路径bind IP地址:0.0.0.0
logfile:空
daemonize:no
masterauth:主节点requirepass设置的密码
replicaof 主节点IP地址 主节点redis端口save 10 1 #十秒内有一个key改动就执行快照备份
docker快速暴露问题:去掉-d后台运行就可以运行问题
3、云服务器docker安装reids,防火墙也放开了 为啥redis desktop 就是连接不上
记得注释掉 bind 127.0.0.1 ::1
4、redis的默认用户名是default