如何在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 "流程已准备就绪。"
#    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创建一个系统化的Unit文件

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

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

我们从[Unit]部分开始,添加说明并定义一个要求,我们需要联网才能最有效地启动此服务。

[单位]说明= Redis之后的内存数据存储= 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实例,以便我们可以将其用于内存中的数据结构存储,还可以用作数据库,缓存和消息代理。