侧边栏壁纸
博主头像
编程分享录

行动起来,活在当下

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

目 录CONTENT

文章目录

Ubuntu源码编译安装Redis

1. 安装系统依赖

apt update -y && apt-get update -y && apt install -y build-essential tcl libsystemd-dev

2. 安装Redis

下载最新的源码

wget https://download.redis.io/releases/redis-8.8.0.tar.gz

解压

tar -zxvf redis-8.8.0.tar.gz

编译

make clean && make USE_SYSTEMD=yes BUILD_TLS=yes MALLOC=jemalloc -j$(nproc)

安装

make install

查看版本信息

redis-server --version

3. 管理Redis

为了安全,通常单独创建一个用户,专门用于给redis管理。

# 创建 redis 系统用户(无法登录,仅用于运行服务)
sudo useradd -r -s /sbin/nologin redis
# 创建必要的目录
sudo mkdir -p /etc/redis /var/lib/redis /var/log/redis
# 设置目录所有权
sudo chown redis:redis /var/lib/redis /var/log/redis
# 复制默认配置文件到 /etc/redis
sudo cp /usr/local/src/redis/redis-8.8.0/redis.conf /etc/redis/redis.conf

创建systemctl管理redis

sudo vim /etc/systemd/system/redis.service

写入下面的内容

[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
Type=notify
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
RestartSec=3
LimitNOFILE=65535
ReadWritePaths=/var/lib/redis /var/log/redis

[Install]
WantedBy=multi-user.target

注意:

Type=notify 需要 Redis 在编译时启用了 USE_SYSTEMD=yes 才会生效。
若编译时未开启 systemd 支持,请将 Type=notify 改为 Type=simple,否则 systemd 将无法正确感知 Redis 服务状态。

4. 配置Redis

因为上面编译时使用了USE_SYSTEMD=yes,也就是会交给系统去管理,因此,我们需要打开配置文件redis.conf,把daemonize的值设置为no

daemonize no

并且还需要把supervised设置为systemd监督模式。

supervised systemd

设置工作目录,也就是保存RDBAOF文件的目录。

dir /var/lib/redis

设置输出日志文件的路径。

logfile /var/log/redis/redis.log

image-20260601173800137

maxmemory 8gb
maxmemory-policy allkeys-lru

我服务器的内存是16GB,这里最多分配8GBRedis,如果超过设置的最大值就会触发maxmemory-policy。这些配置是结合AI给的建议设置的值,具体可以问问AI应该设置什么值合理。

最后执行下面命令启动redis

systemctl daemon-reload
systemctl start redis

查看redis运行状态

systemctl status redis

添加到系统开机自启

systemctl enable redis

停止redis

systemctl stop redis
3

评论区