Linux安装 Redis
在 Linux 系统上安装并部署 Redis,并将其配置为系统服务(systemd 服务),可以按照以下步骤操作。本文以 CentOS / RHEL / Ubuntu 系统为例,适用于主流的 Linux 发行版。
🛠️ 一、安装 Redis
方法一:从源码编译安装(推荐)
1. 安装依赖
# CentOS/RHEL
sudo yum install -y gcc make tcl gcc-c++
# Ubuntu/Debian
sudo apt update
sudo apt install -y build-essential tcl
2. 下载 Redis 源码包
cd /tmp
wget https://github.com/redis/redis/archive/refs/tags/8.0.2.tar.gz
tar -zxvf ./8.0.2.tar.gz
cd redis-8.0.2
3. 编译安装
make
make test # 可选:运行测试确保没问题
sudo make install
报错解决:
jemalloc/jemalloc.h:没有那个文件或目录
In file included from server.h:55:0, from threads_mngr.c:16: zmalloc.h:30:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录 #include <jemalloc/jemalloc.h>
解决方法:
make distclean make MALLOC=libc make
📦 二、配置 Redis
1. 创建配置文件目录
sudo mkdir /etc/redis
sudo cp ./redis.conf /etc/redis/
2. 修改 Redis 配置文件
sudo nano /etc/redis/redis.conf
常用修改项:
bind 0.0.0.0 # 允许远程访问(生产环境建议绑定具体IP)
protected-mode no # 关闭保护模式
daemonize no # 设置为 no(systemd 控制进程)
supervised systemd # 启用 systemd 管理
dir /var/lib/redis # 数据存储路径
appendonly yes # 推荐开启 AOF 持久化
requirepass Admin@123456 # 设置密码
3. 创建数据目录并设置权限
sudo mkdir -p /var/lib/redis
🧑🔧 三、创建 Redis 用户(安全考虑)
sudo adduser --system --no-create-home --group redis
⚙️ 四、配置 Systemd 服务
创建一个 systemd 服务单元文件:
sudo nano /etc/systemd/system/redis.service
内容如下:
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=root
Group=root
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
注意:
/usr/local/bin/redis-server
是make install
默认安装路径,可通过which redis-server
查看。
🔁 五、启动并启用 Redis 服务
sudo systemctl daemon-reload
sudo systemctl start redis
sudo systemctl enable redis
检查状态:
sudo systemctl status redis
🧪 六、验证 Redis 是否正常运行
redis-cli ping
如果返回:
PONG
说明 Redis 正常运行!
🔒 七、(可选)设置密码认证
编辑 /etc/redis/redis.conf
:
requirepass your_strong_password
重启服务后生效:
sudo systemctl restart redis
连接时使用:
redis-cli -a your_strong_password
🧱 八、防火墙开放端口
在 Linux 系统中,如果你启用了防火墙(如 firewalld
或 ufw
),你需要手动放行 Redis 的默认端口 6379,否则外部客户端将无法访问 Redis。
Redis 使用端口 6379
是因为这是意大利女演员 Alessia Merz 的名字谐音(MERZ → M=6379 在电话键盘上)😄
🔹 方法一:使用 firewalld(CentOS / RHEL / Fedora)
1. 查看防火墙状态
sudo systemctl status firewalld
如果没运行,先启动并启用它:
sudo systemctl start firewalld
sudo systemctl enable firewalld
2. 放行 6379 端口
sudo firewall-cmd --permanent --add-port=6379/tcp
sudo firewall-cmd --permanent --add-port=6379/tcp
3. 重载防火墙配置
sudo firewall-cmd --reload
4. 验证是否生效
sudo firewall-cmd --list-all | grep 6379
输出应类似:
ports: 6379/tcp 6379/udp
🔸 方法二:使用 ufw(Ubuntu / Debian)
1. 查看 UFW 状态
sudo ufw status
如果禁用,先启用:
sudo ufw enable
2. 放行 6379 端口
sudo ufw allow 6379/tcp
3. 可选:允许特定 IP 访问 Redis(更安全)
sudo ufw allow from 192.168.1.100 to any port 6379
4. 验证规则
sudo ufw status verbose
🛡️ 安全建议
- 不要开放给所有 IP(0.0.0.0/0),除非你确实需要公网访问。
- 如果部署在云服务器(如 AWS、阿里云等),还需在 安全组或网络 ACL 中放行 6379 端口。
- 建议结合 Redis 密码认证和绑定 IP(
bind
)一起使用,提升安全性。
📌 示例:Redis 绑定 IP + 密码 + 防火墙组合增强安全
bind 0.0.0.0
requirepass your_strong_password_here
然后防火墙只允许特定 IP 段访问 Redis 端口,比如:
# CentOS/firewalld
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="6379" accept'
sudo firewall-cmd --reload
# Ubuntu/ufw
sudo ufw allow from 192.168.1.0/24 to any port 6379
评论区