云服务器上安装Redis
我们这里使用源码编译安装的方式:下载redis的安装包(可以自己去官网,下载想要的版本),这里提供网盘链接,
自行获取: redis-7.2.4.tar.gz 提取码: 2jq4
一、下载
个人将其放在了云服务器的 /usr/local/src 下新建了 Redis包
使用命令进行解压缩:
tar -zxvf 文件名
完成后,进入到解压好的目录redis下执行编译命令:
//编译命令
make
//初始化命令
make install
二、配置
修改redis.conf

1. 绑定IP地址

这一行指令同时绑定了两个地址,具体含义如下:
-
0.0.0.0 (IPv4)
-
含义:表示 Redis 将监听服务器上 所有的 IPv4 网络接口。
-
效果:这意味着 不仅 本机(localhost)可以连接,局域网或公网 上的其他计算机只要能访问服务器的 IP,就可以连接到这个 Redis 服务。
-
用途:通常用于允许 远程连接(Remote Access)。
-
-
::1 (IPv6)
-
含义:这是 IPv6 协议下的 回环地址(Loopback Address)。
-
效果:等同于 IPv4 的 127.0.0.1,仅允许通过 IPv6 协议进行本地连接。
-
2. 保护模式

- 这行配置的含义
将 protected-mode 设置为 no,意味着你手动关闭了 Redis 的安全自我保护机制。
- 默认情况 (yes):Redis 为了防止误操作,如果你配置了允许外部连接(bind 0.0.0.0)但没有设置密码,它会强制拒绝外部连接,只允许本机访问。
- 当前配置 (no):你告诉 Redis:“我知道我在做什么,请允许外部连接,哪怕我没有设置密码。”
-
结合你上一张图片的后果
结合你之前展示的 bind 0.0.0.0,现在的状态是:- 大门敞开 (bind 0.0.0.0):允许任何 IP 连接。
- 保安撤岗 (protected-mode no):不再检查是否配置了密码。
结果: 此时,任何能够通过网络 ping 通你服务器 IP 的人,都可以直接连接你的 Redis,并且拥有最高权限(读写数据、清空数据库等),不需要任何密码。
- 为什么会有这种配置?(使用场景)
虽然这看起来很危险,但在以下场景中是常见的:
- 完全隔离的内网环境:应用服务器和 Redis 在同一个安全的局域网内,外部无法访问。
- 容器化环境 (Docker/K8s):Redis 运行在容器内部,依靠 Docker 的网络隔离来保证安全,不需要 Redis 自身进行拦截。
- 开发/测试环境:为了方便调试,不想每次连接都输密码。
3. 指定访问Redis的端口号

- 含义: 指定 Redis 监听的 TCP 端口号。
- 6379 是什么? 这是 Redis 的官方默认端口。就好比 MySQL 默认用 3306,HTTP 默认用 80 一样。
- 作用: 当你使用 Java (Spring Boot)、Python 或命令行连接 Redis 时,如果不特意指定端口,程序都会默认去找 6379。
- 示例:在 Spring Boot 的 application.yml 中,通常配置 port: 6379。
4. 是否作用守护进程使用

- 含义:告诉 Redis 不要 以守护进程(Daemon)的方式在后台运行,而是作为前台进程运行。
- 直观效果:
- 设置 no(当前状态):当你输入启动命令(如 redis-server)后,Redis 会直接占用当前的终端窗口(命令行界面)。你会看到日志实时打印在屏幕上。如果你关闭这个窗口或按 Ctrl+C,Redis 服务就会停止。
- 设置 yes:Redis 会在启动后自动“隐身”转到后台运行,你可以继续在这个终端窗口输入其他命令,且关闭窗口后 Redis 依然在运行。
- 适用场景:
-
Docker 容器(最常见):在 Docker 中,通常必须设置为 daemonize no。因为 Docker 容器如果检测到前台进程结束(如果设为 yes,Redis 就会退出前台),容器就会认为服务停止了而自动关闭。
-
调试/开发:方便直接看到报错和日志。
-
5. 设置redis强密码

-
指令:requirepass [强密码]
-
含义:你启用了 密码认证。
-
重要性:这完全改变了我们之前的结论。
- 之前看到 protected-mode no 和 bind 0.0.0.0 时,我警告你是“裸奔”状态。
- 但现在,既然你配置了 requirepass,说明访问者必须提供正确的密码才能操作数据。这大大提高了安全性。
完成上面的五个配置后,现在的redis状态就是:
- 可访问性:高(允许远程连接)。
- 安全性:中/高(依赖于你密码的复杂度)。
- 只要你的密码足够长、足够复杂,这个配置在开发和一般生产环境中是可以接受的。
建议: 既然允许公网/远程连接,请确保你的密码(被马赛克遮住的部分)是非常复杂的(包含字母、数字、符号且长度较长),因为 Redis 的破解速度非常快,简单密码很容易被暴力破解。
开放端口
在控制台和云服务器上均开放 3306 和 6379 端口(均为默认)
云服务器相关指令
- 防火墙状态检查:firewall-cmd --state
- 关闭防火墙:systemctl stop firewalld.service
- 开启防火墙:systemctl start firewalld.service
- 关闭开机防火墙自启动:systemctl disable firewalld.service
- 开启防火墙开机自启动:systemctl enable firewalld.service
- 查看防火墙开放端口:firewall-cmd --list-ports
- 防火墙对某一端口开放(即,对某端口防火墙不起作用):firewall-cmd --zone=public --add-port=XXXX/tcp --permanent
- 重启防火墙服务:firewall-cmd --reload
更多推荐
所有评论(0)