以下是安装并启动 Redis 服务在 CentOS 7系统上的完整步骤。你可以将这些步骤保存下来,以便将来参考:
一、安装redis
1.安装 EPEL 仓库
首先,需要确保 EPEL (Extra Packages for Enterprise Linux) 仓库已安装并启用,因为 Redis 包包含在 EPEL 仓库中。
sudo yum install epel-release
2. 清理并更新 YUM 缓存
在安装 Redis 之前,清理并更新 yum
的缓存确保你能够从最新的仓库中检索信息。
sudo yum clean all
sudo yum makecache fast
3. 安装 Redis
通过 EPEL 仓库安装 Redis:
sudo yum install redis
4. 启动 Redis 服务
sudo systemctl start redis
5. 设置 Redis 开机自启
sudo systemctl enable redis
6. 检查 Redis 服务状态
sudo systemctl status redis
7. 测试 Redis 服务
使用 redis-cli
工具测试 Redis 服务器是否响应:
redis-cli ping
如果一切设置正确,你将收到一个 PONG
响应,表明 Redis 服务器正在运行。
二、使得redis进行外部连接
1. 检查Redis 服务是否运行
首先确认目标 Linux 机器上的 Redis 服务确实正在运行。可以通过在 Linux 机器上执行以下命令来检查 Redis 服务的状态:
sudo systemctl status redis
如果服务未运行,使用以下命令启动:
sudo systemctl start redis
2. Redis 配置文件的监听地址
默认情况下,Redis 只监听 localhost (127.0.0.1
) 地址,这意味着它只接受来自同一台机器的连接。为了让 Redis 接受来自其他机器的连接,你需要编辑 Redis 配置文件(通常是 /etc/redis.conf
或 /etc/redis/redis.conf
),修改 bind
指令,包括你的服务器 IP 地址或使用 0.0.0.0
(不推荐在生产环境中使用,因为这会使 Redis 对所有网络接口可见,可能引入安全风险)。
vi /etc/redis.conf
找到 bind 127.0.0.1(用方向键拉到下面,肯定能看见的)
,将其更改为:
# bind 127.0.0.1
bind 0.0.0.0
更改后,重启 Redis 服务:
sudo systemctl restart redis
3. 防火墙设置
确保 Linux 服务器的防火墙允许从你的客户端 IP 地址到服务器的 6379 端口的连接。例如,如果你的 Linux 服务器使用的是 firewalld
,你可以通过以下命令来允许 Redis 端口:
sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent
sudo firewall-cmd --reload
如果使用的是 iptables
,则命令可能类似于:
sudo iptables -I INPUT -p tcp -s 0.0.0.0/0 --dport 6379 -j ACCEPT
注意:0.0.0.0/0
允许所有 IP,根据实际情况调整以提高安全性。
这样外部就可以直接通过linux的ip和6379端口连接到redis数据库了。
注意事项
- 如果你在启动 Redis 服务时遇到
Unit redis.service could not be found.
的错误,这可能意味着 Redis 没有正确安装,或者你的系统中缺少服务文件。请确保按照上述步骤准确无误地安装 Redis。 - 如果在执行
redis-server
命令时遇到bash: redis-server: command not found
的错误,这表示 Redis 的可执行文件没有在你的 PATH 环境变量中。确保通过包管理器正确安装 Redis,这样可以自动处理可执行文件路径的配置。
1.如果遇到 Unit redis.service could not be found.
错误:
1.1确认 Redis 是否已正确安装:
重新检查通过 yum
安装 Redis 的步骤,确保没有遗漏或出错。使用以下命令确认 Redis 是否已安装:
sudo yum list installed | grep redis
1.2手动创建 systemd 服务文件(如果你是从源代码编译安装的 Redis,或者出于某种原因服务文件丢失):
创建一个新的 systemd 服务文件 /etc/systemd/system/redis.service
:
sudo vi /etc/systemd/system/redis.service
将以下内容粘贴到文件中,调整 ExecStart
和 ExecStop
的路径以匹配你的 Redis 安装位置:
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
重新加载 systemd 管理器配置,使新的服务文件生效:
sudo systemctl daemon-reload
尝试再次启动 Redis 服务:
sudo systemctl start redis
2.如果遇到 bash: redis-server: command not found
错误:
2.1确认 Redis 的安装路径:
如果 Redis 已经安装但无法通过命令行访问,可能是因为其安装路径没有包含在系统的 PATH
环境变量中。使用 find
命令查找 redis-server
的安装位置:
sudo find / -name redis-server
2.1添加 Redis 到 PATH 环境变量:
假设你找到 redis-server
在 /usr/local/bin
(这只是一个例子,根据你的实际情况调整),你可以通过在 .bash_profile
或 .bashrc
文件中添加以下行来更新 PATH
环境变量:
export PATH=$PATH:/usr/local/bin
2.3重新尝试访问 Redis:
在调整了 PATH
环境变量之后,尝试再次运行 redis-server
命令。