好的,我将每个步骤更加详细地展开,并且说明如何为 Redis 设置密码。以下是更完整的过程:
1. 安装依赖项
在安装 Redis 之前,需要确保系统安装了必需的依赖项(编译工具和库):
sudo yum update -y
sudo yum install -y gcc make jemalloc
- gcc:GNU 编译器,用于编译 C 代码。
- make:构建工具,用于自动化编译程序。
- jemalloc:内存分配器,Redis 默认使用 jemalloc 来优化内存管理。
2. 下载 Redis 安装包
到 Redis 的官网下载你需要的版本,或者使用 wget 直接下载:
cd /usr/local/src
sudo wget http://download.redis.io/releases/redis-7.2.5.tar.gz
3. 解压 Redis 安装包
下载完成后,解压 .tar.gz 文件:
sudo tar -xvzf redis-7.2.5.tar.gz
cd redis-7.2.5
tar:用于解压.tar.gz压缩包。-xvzf:参数含义:x表示解压,v表示显示详细输出,z表示解压.gz格式,f表示指定文件名。
4. 编译 Redis
进入 Redis 安装包目录后,通过 make 命令编译 Redis:
sudo make
这个过程将编译 Redis 的所有源代码,并生成可执行文件。
安装 Redis 后,可以执行以下命令验证安装:
sudo make install
make install命令会将编译好的文件复制到系统目录中(通常是/usr/local/bin)。
5. 配置 Redis
复制 Redis 配置文件
Redis 包含一个默认配置文件 redis.conf,你需要将它复制到 /etc/ 目录,这样更方便管理。
sudo cp redis.conf /etc/redis.conf
修改 Redis 配置文件
编辑 /etc/redis.conf 配置文件来进行必要的修改。使用 Vim 或任何编辑器:
sudo vim /etc/redis.conf
以下是常用的配置修改:
-
让 Redis 在后台运行:
修改daemonize为yes,这样 Redis 就会以后台服务的形式运行,而不是在前台运行:daemonize yes -
配置 Redis 监听的 IP:
如果你希望 Redis 允许远程连接,需要修改bind设置为0.0.0.0,让 Redis 监听所有 IP 地址。如果你只想让本地访问,保留默认的127.0.0.1。bind 0.0.0.0 -
开启 Redis 密码保护:
为了确保 Redis 安全性,你可以为 Redis 设置密码。修改requirepass配置项并设置密码,例如:requirepass your_password_here将
your_password_here替换为你想要设置的密码。 -
关闭保护模式:
默认情况下,Redis 会启用保护模式,以防止未经授权的访问。在开放访问时,可以关闭保护模式:protected-mode no
完成配置后,保存并退出编辑器(在 Vim 中按 Esc,然后输入 :wq)。
6. 创建 Redis 用户和工作目录
为 Redis 创建专用用户和目录,以提高安全性:
sudo useradd redis
sudo mkdir /var/lib/redis
sudo mkdir /var/log/redis
设置目录权限,使 Redis 用户可以访问这些目录:
sudo chown redis:redis /var/lib/redis /var/log/redis
7. 配置 Redis 为系统服务
为了使 Redis 在系统启动时自动运行,需要创建一个 systemd 服务文件。
创建 Redis 服务文件
创建一个新的 systemd 服务文件 /etc/systemd/system/redis.service:
sudo vim /etc/systemd/system/redis.service
将以下内容粘贴到文件中:
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
User=redis
Group=redis
PrivateTmp=yes
[Install]
WantedBy=multi-user.target
- ExecStart:指定 Redis 服务器启动的命令。
- ExecStop:指定停止 Redis 服务器的命令。
- Restart:设为
always,确保 Redis 在崩溃时能够自动重启。 - User 和 Group:以 Redis 用户身份启动进程。
- PrivateTmp:开启独立的临时文件夹,增强安全性。
保存并退出。
重新加载 systemd 配置并启动 Redis 服务
在创建了 Redis 的 systemd 服务文件后,重新加载 systemd 配置并启动 Redis 服务:
sudo systemctl daemon-reload
sudo systemctl start redis
8. 设置 Redis 开机自启动
确保 Redis 服务在系统启动时自动启动:
sudo systemctl enable redis
9. 验证 Redis 服务是否成功启动
检查 Redis 服务的状态,确保它正在运行:
sudo systemctl status redis
如果 Redis 正在运行,你应该看到类似如下的信息:
● redis.service - Redis In-Memory Data Store
Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2024-12-16 13:25:55 UTC; 1min 30s ago
Main PID: 2035 (redis-server)
CGroup: /system.slice/redis.service
└─2035 /usr/local/bin/redis-server 127.0.0.1:6379
10. 测试 Redis 是否正常运行
你可以通过 Redis 命令行工具 redis-cli 来测试 Redis 是否正常运行:
redis-cli
连接后,如果你设置了密码,可以通过以下命令进行身份验证:
auth your_password_here
然后你可以执行一个简单的 Redis 命令来确认 Redis 是否正常运行:
ping
如果返回 PONG,说明 Redis 正常运行。
总结
至此,你已经成功地在 CentOS 7.9 上安装并配置了 Redis 7.2.5,并设置了 Redis 服务在系统启动时自动启动,且为 Redis 配置了密码保护。
果返回 PONG,说明 Redis 正常运行。 怎么退出
在 redis-cli 中,退出 Redis 客户端的方法很简单,只需输入以下命令:
exit
或者,你也可以按 Ctrl + C 直接退出。
这两种方法都会退出 Redis 命令行界面。
根据以上 我怎么知道我登录的是 专用用户 redis
要确认你是否以 Redis 专用用户身份登录,可以通过以下几种方法来检查:
方法 1: 使用 whoami 命令
在命令行中使用 whoami 命令来查看当前登录的用户。如果你已经使用 Redis 配置文件设置了 Redis 作为专用用户启动服务,可以在 redis-cli 之外的终端执行以下命令:
whoami
如果输出的用户名是 redis,那么说明你当前是以 Redis 用户身份登录的。
方法 2: 使用 ps 命令查看进程
你还可以使用 ps 命令查看 Redis 进程的执行用户。执行以下命令:
ps aux | grep redis
你应该能看到类似以下的输出:
redis 2035 0.0 0.1 127208 3724 ? Ssl 12:25 0:00 /usr/local/bin/redis-server 127.0.0.1:6379
在这行输出中,第一个字段显示的是运行 Redis 进程的用户(在这个例子中是 redis)。如果它显示为 redis,则说明 Redis 是由专用的 redis 用户启动和运行的。
方法 3: 检查 ps 命令输出的进程所属用户
你也可以使用 pstree 命令查看 Redis 服务的父子进程,并检查它是否由 redis 用户启动:
pstree -u redis
这会显示以 redis 用户身份运行的进程树。如果你看到 Redis 的父进程是 redis 用户,则确认 Redis 是由该用户运行的。
方法 4: 检查 Redis 配置文件中的 user 和 group 设置
Redis 服务是通过 systemd 启动的,在配置文件 /etc/systemd/system/redis.service 中,User 和 Group 被设置为 redis,这意味着 Redis 会以 redis 用户和组身份运行。
[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
User=redis
Group=redis
如果你的 redis.service 文件中确实设置了 User=redis 和 Group=redis,那么 Redis 就应该在 redis 用户下运行。
小结
- 通过
whoami命令检查当前登录用户。 - 通过
ps aux | grep redis查看 Redis 进程所属用户。 - 确认 Redis 服务的启动用户是否为
redis用户。
root 用户 能操作 运行redis 吗?
是的,root 用户可以操作和运行 Redis,但通常不推荐以 root 用户运行 Redis,原因如下:
1. 安全性问题:
- 以
root用户运行 Redis 会使得系统面临潜在的安全风险。如果 Redis 进程遭到攻击或出现漏洞,攻击者将能够获得root权限,从而完全控制整个系统。 - Redis 作为一个数据库和缓存系统,其本身并不需要
root权限来运行,且大多数情况下没有特别的需求要求root用户执行它。运行在普通用户下可以减少被攻击时的危害。
2. 最小权限原则:
- 根据“最小权限”原则,程序应只拥有执行其任务所必需的最低权限。以
redis用户运行 Redis 能保证即使 Redis 被攻击,攻击者也只能对 Redis 本身的进程和文件进行操作,无法对整个系统进行更改或危害。 - 在本例中,
redis用户并不需要执行系统级别的管理任务,除非做某些特定操作,如安装或配置文件的修改,这时可以暂时切换到root用户进行管理。
3. 如何操作 Redis:
如果你是 root 用户,你依然可以启动和管理 Redis。你可以通过以下几种方式操作 Redis 服务:
启动 Redis 服务:
如果你以 root 用户身份启动 Redis 服务,可以使用 systemctl 启动:
sudo systemctl start redis
查看 Redis 服务状态:
你也可以通过 systemctl 查看 Redis 服务的状态:
sudo systemctl status redis
以 root 用户运行 Redis:
如果你不想使用 systemd 启动 Redis,直接以 root 用户启动 Redis 服务:
/usr/local/bin/redis-server /etc/redis.conf
切换到 redis 用户后运行:
如果你希望保持 root 用户的管理权限,可以使用 su 或 sudo 切换到 redis 用户后再启动 Redis。
sudo su - redis
/usr/local/bin/redis-server /etc/redis.conf
4. 如何限制 root 用户操作 Redis:
为了防止 root 用户意外地以不安全的方式操作 Redis,通常我们会通过以下步骤来确保 Redis 以专用用户 redis 运行:
- 确保 Redis 的配置文件
/etc/redis.conf设置了daemonize yes,并且启用了密码保护 (requirepass),以减少潜在的安全隐患。 - 通过
systemd启动 Redis 服务,并在服务文件中配置User=redis和Group=redis,确保 Redis 永远以非root用户身份运行。
例如,配置 redis.service 文件如下:
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
User=redis
Group=redis
PrivateTmp=yes
[Install]
WantedBy=multi-user.target
总结
root用户当然可以启动和操作 Redis,但出于安全性考虑,通常我们建议使用专用的非特权用户(如redis用户)来运行 Redis。- 以非
root用户(如redis)运行 Redis,能够限制潜在的安全风险,并遵循最小权限原则,避免系统被全面破坏。
完成以上操作后,怎么来停止启动 reidis ?
完成 Redis 安装和配置后,停止和启动 Redis 服务器有几种方法。如果你使用的是 systemd 来管理 Redis 服务,可以通过以下命令来启动和停止 Redis。
1. 使用 systemctl 管理 Redis 服务
如果你通过 systemd 配置 Redis 作为服务启动(参考之前的步骤),你可以使用以下命令来停止和启动 Redis。
启动 Redis 服务:
sudo systemctl start redis
- 启动 Redis 服务并让它在后台运行。
停止 Redis 服务:
sudo systemctl stop redis
- 停止正在运行的 Redis 服务。
重启 Redis 服务:
sudo systemctl restart redis
- 如果你修改了 Redis 配置文件(如
/etc/redis.conf),可以通过重启服务来应用更改。
查看 Redis 服务状态:
sudo systemctl status redis
- 查看 Redis 服务的当前状态。如果 Redis 正在运行,你会看到它的 PID 和状态信息。
2. 直接使用 Redis 命令手动停止
如果你没有通过 systemd 启动 Redis,而是直接在终端运行了 redis-server,你可以通过以下方法停止 Redis。
使用 redis-cli 停止 Redis:
如果你已经进入了 redis-cli,可以使用 shutdown 命令来停止 Redis。
-
启动
redis-cli:redis-cli -
进入
redis-cli后,输入:shutdown这将关闭 Redis 服务。
如果 Redis 配置了密码保护(如在
/etc/redis.conf中设置了requirepass),你需要先进行身份验证:auth your_password_here shutdown
使用 kill 命令手动终止 Redis 进程:
如果你不能通过 redis-cli 或 systemctl 停止 Redis,也可以手动终止 Redis 进程。首先,通过 ps 命令查找 Redis 进程:
ps aux | grep redis
然后使用 kill 命令终止 Redis 进程:
sudo kill -9 <pid>
其中 <pid> 是 Redis 进程的 ID。
3. 如何配置 Redis 服务在启动时自动启动/关闭
如果你想确保 Redis 服务在系统启动时自动启动,可以使用以下命令:
sudo systemctl enable redis
- 这样每次系统启动时,Redis 会自动启动。
如果你想禁止 Redis 在系统启动时自动启动,使用以下命令禁用它:
sudo systemctl disable redis
总结:
-
通过
systemctl:- 启动:
sudo systemctl start redis - 停止:
sudo systemctl stop redis - 重启:
sudo systemctl restart redis - 查看状态:
sudo systemctl status redis
- 启动:
-
通过
redis-cli:- 连接 Redis 后,执行
shutdown命令来停止服务。
- 连接 Redis 后,执行
-
直接终止进程:
- 使用
ps aux | grep redis查找 Redis 进程 ID,使用kill -9 <pid>来强制终止进程。
- 使用
使用 systemctl 管理 Redis 是最常见且最推荐的方式,因为它能够确保 Redis 作为系统服务正常运行,并能够在系统启动时自动启动。
CentOS 7.9 安装、配置与管理 Redis 7.2.5
571

被折叠的 条评论
为什么被折叠?



