侧边栏壁纸
博主头像
博主等级

秋风清,秋月明,落叶聚还散,寒鸦息复惊,相思相见知何日,此时此夜难为情!

  • 累计撰写 22 篇文章
  • 累计创建 33 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux安装 Redis

尘
2025-06-01 / 0 评论 / 0 点赞 / 5 阅读 / 7240 字
温馨提示:
本文最后更新于 2025-06-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

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

报错解决:

  1. 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-servermake 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 系统中,如果你启用了防火墙(如 firewalldufw),你需要手动放行 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
0

评论区