如何在 Ubuntu Linux 上配置和安装 Redis


在本文中,我们将学习如何配置 Redis。Redis 是一种内存中的键值存储,因其灵活性和性能而广受欢迎,并支持多种语言。我们将在 Ubuntu Linux 服务器上配置它。为了演示,我们需要一个非 root 用户,并为该用户设置 Sudo 权限以执行操作。

安装构建和测试依赖项

为了获取 Redis 的最新版本,我们将获取最新的源代码,并编译和安装软件。为此,我们需要安装软件编译的依赖项。

我们还需要从 Ubuntu 存储库安装 build-essential 元软件包,并下载用于测试二进制文件的“tcl”软件包。

# sudo apt-get update
# sudo apt-get install build-essentials tcl

Redis 下载、编译和安装

下载源代码并解压。在临时文件夹中创建一个文件夹

# mkdir /tmp/redis
# cd /tmp/redis

下载 Redis 的最新稳定版本,我们可以使用以下命令获取

# curl -O http://download.redis.io/redis-stable.tar.gz
# tar xzvf redis-stable.tar.gz
# cd redis-stable

构建和安装 Redis

我们将使用以下命令编译和安装 Redis 二进制文件

# make

源代码编译完成后,我们将获得二进制文件,我们运行以下命令来测试套件

# make test

我们可以使用以下命令在系统上安装所有二进制文件。

# make install

在 Ubuntu 上配置 Redis

由于我们刚刚安装了 Redis,因此我们可以开始配置 Redis。我们需要创建目录 /etc/redis

# mkdir /etc/redis

复制包含在 Redis 源代码归档文件中的 Redis 配置文件

# cp /tmp/redis/redis-stable/redis.conf /etc/redis

使用编辑器打开配置文件

# vi /etc/redis/redis.conf

在配置文件中,我们将找到一个名为“supervised”的指令,该指令设置为 no,因为我们使用 systemd 初始化系统,所以我们可以将其更改为 systemd。

# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
#    supervised no      - no supervision interaction
#    supervised upstart - signal upstart by putting Redis into SIGSTOP mode
#    supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#    supervised auto    - detect upstart or systemd method based on
#                      UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
#    They do not enable continuous liveness pings back to your supervisor.
supervised systemd

接下来,找到 dir 指令并将 dire 指令更改为 /var/lib/redis,此选项用于指定 Redis 将用于转储持久数据目录的目录。此位置具有写权限,普通用户无法查看。

# The working directory.
#
# The DB will be written inside this directory, with the filename specified
# above using the 'dbfilename' configuration directive.
#
# The Append Only File will also be created inside this directory.
#
# Note that you must specify a directory here, not a file name.
dir /var/lib/redis

Save the changes and close the file

为 Redis 创建 systemd 单元文件

我们可以创建一个 **systemd** 文件,以便 **init** 系统可以管理进程。

# touch /etc/systemd/system/redis.service
# vi /etc/systemd/system/redis.service

我们从 [Unit] 部分开始,添加描述并定义一个需求,即我们需要网络能够最先可用以启动此服务。

[Unit] Description=Redis 内存数据存储 After=network.target

在 [service] 部分,我们将指定服务的行为。出于安全原因,我们不会以 root 用户身份运行服务。我们将专门分配一个用户和组,他们将简单地调用 Redis。

要启动服务,我们需要调用指向我们配置的 redis-server 二进制文件。要停止服务,我们将使用 Redis shutdown 命令,该命令将使用 redis-cli 二进制文件执行。

[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] section, we define the systemd to target the service to attach to
enable (configured to start at boot time).
[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

创建 Redis 用户、组和目录

# add users --system --group --no-create-home redis
# mkdir /var/lib/redis
# chown redis:redis /var/lib/redis
# chmod 770 /var/lib/redis

启动和测试 Redis

我们已准备好启动 Redis 服务器

# systemctl start redis

要检查服务是否无错误运行,我们可以运行以下命令 -

# systemctl status redis
redis.service - Redis Server
Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2016-05-13 11:42:00 EDT; 5min 03s ago
Process: 7127 ExecStop=/usr/local/bin/redis-cli shutdown (code=exited, status=0/SUCCESS)
Main PID: 7143 (redis-server)
Tasks: 6 (limit: 512)
Memory: 10864.0K
CPU: 79ms
CGroup: /system.slice/redis.service
└─7143 /usr/local/bin/redis-server 127.0.0.1:6379

启用 Redis 在启动时启动

# sudo systemctl enable redis

我们应该已在我们的环境中安装并配置了一个 Redis 实例,以便我们可以将其用于内存数据结构存储,以及用作数据库、缓存和消息代理。

更新于:2020年1月21日

527 次浏览

开启您的 职业生涯

通过完成课程获得认证

开始
广告