前些天发现了一个巨牛的人工智能学习网站,普通易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
Redis 是一个内存中的键值存储,以其机动性、性能和广泛的语言支持而闻名。在本指南中,我们将演示如何在 Ubuntu 16.04 服务器上安装和配置 Redis。
先决条件
要完成本指南,您需要访问 Ubuntu 16.04 服务器。您需要一个具有 sudo 权限的非根用户,以实行此过程所需的管理功能。您可以按照我们的 Ubuntu 16.04 初始服务器设置指南来相识如何设置具有这些权限的帐户。
当您准备好开始时,请使用您的 sudo 用户登录到 Ubuntu 16.04 服务器并继续以下利用。
安装构建和测试依靠项
为了获得 Redis 的最新版本,我们将从源代码编译和安装软件。在下载代码之前,我们需要满足构建依靠项,以便编译软件。
为此,我们可以从 Ubuntu 存储库安装 build-essential 元包。我们还将下载 tcl 包,这样我们就可以测试我们的二进制文件。
我们可以通过输入以下命令来更新本地的 apt 包缓存并安装依靠项:
- sudo apt-get update
- sudo apt-get install build-essential tcl
复制代码 下载、编译和安装 Redis
接下来,我们可以开始构建 Redis。
下载并解压源代码
由于我们不需要恒久保留我们将要编译的源代码(我们可以随时重新下载它),我们将在 /tmp 目次中构建。让我们现在切换到那里:
现在,下载最新稳定版本的 Redis。这始终可在稳定的下载 URL 上找到:
- curl -O http://download.redis.io/redis-stable.tar.gz
复制代码 通过输入以下命令解压 tarball:
- tar xzvf redis-stable.tar.gz
复制代码 进入刚刚提取的 Redis 源目次结构:
构建和安装 Redis
现在,我们可以通过输入以下命令来编译 Redis 二进制文件:
在编译二进制文件后,运行测试套件以确保一切都构建精确。您可以通过输入以下命令来实行此利用:
这通常需要几分钟才能运行。完成后,您可以通过输入以下命令将二进制文件安装到系统中:
配置 Redis
现在 Redis 已安装,我们可以开始配置它。
首先,我们需要创建一个配置目次。我们将使用传统的 /etc/redis 目次,可以通过输入以下命令来创建:
现在,复制 Redis 源存档中包罗的示例 Redis 配置文件:
- sudo cp /tmp/redis-stable/redis.conf /etc/redis
复制代码 接下来,我们可以打开文件以调解配置中的一些项目:
- sudo nano /etc/redis/redis.conf
复制代码 在文件中,找到 supervised 指令。当前,此项设置为 no。由于我们正在运利用用 systemd init 系统的利用系统,我们可以将其更改为 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 ping
- s back to your supervisor.
- supervised systemd
- . . .
复制代码 接下来,找到 dir 目次。此选项指定 Redis 将用于转储持久数据的目次。我们需要选择一个 Redis 将具有写权限且寻常用户无法查看的位置。
我们将使用 /var/lib/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
- . . .
复制代码 完成后保存并关闭文件。
创建 Redis systemd 单位文件
接下来,我们可以创建一个 systemd 单位文件,以便 init 系统可以管理 Redis 历程。
首先创建并打开 /etc/systemd/system/redis.service 文件:
- sudo nano /etc/systemd/system/redis.service
复制代码 在文件中,我们可以在 [Unit] 部分开始添加描述,并定义一个要求,在启动此服务之前网络必须可用:
- [Unit]
- Description=Redis 内存数据存储
- After=network.target
复制代码 在 [Service] 部分,我们需要指定服务的行为。出于安全思量,我们不应该以 root 用户身份运行服务。我们应该使用一个专门的用户和组,我们将简单地称之为 redis。我们将立刻创建这些。
要启动服务,我们只需要调用 redis-server 二进制文件,指向我们的配置。要克制它,我们可以使用 Redis 的 shutdown 命令,可以用 redis-cli
二进制文件实行。此外,由于我们希望 Redis 在大概的情况下从故障中规复,我们将 Restart 指令设置为 “always”:
- [Unit]
- Description=Redis 内存数据存储
- After=network.target
- [Service]User=redisGroup=redisExecStart=/usr/local/bin/redis-server /etc/redis/redis.confExecStop=/usr/local/bin/redis-cli
- shutdownRestart=always
复制代码 最后,在 [Install] 部分,我们可以定义服务在启用时应附加到的 systemd 目标(配置为在启动时启动):
- [Unit]
- Description=Redis 内存数据存储
- After=network.target
- [Service]User=redisGroup=redisExecStart=/usr/local/bin/redis-server /etc/redis/redis.confExecStop=/usr/local/bin/redis-cli
- shutdownRestart=always[Install]WantedBy=multi-user.target
复制代码 完成后保存并关闭文件。
创建 Redis 用户、组和目次
现在,我们只需创建在前两个文件中引用的用户、组和目次。
首先创建 redis 用户和组。可以通过输入以下命令一次性完成:
- sudo adduser --system --group --no-create-home redis
复制代码 现在,我们可以通过输入以下命令创建 /var/lib/redis 目次:
- sudo mkdir /var/lib/redis
复制代码 我们应该让 redis 用户和组拥有此目次的全部权:
- sudo chown redis:redis /var/lib/redis
复制代码 调解权限,以便寻常用户无法访问此位置:
- sudo chmod 770 /var/lib/redis
复制代码 启动和测试 Redis
现在,我们准备启动 Redis 服务器。
启动 Redis 服务
通过输入以下命令启动 systemd 服务:
- sudo systemctl start redis
复制代码 通过运行以下命令检查服务是否没有错误:
- sudo systemctl status redis
复制代码 您应该看到雷同于以下内容:
- ● redis.service - Redis 服务器
- Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
- Active: active (running) since Wed 2016-05-11 14:38:08 EDT; 1min 43s ago
- Process: 3115 ExecStop=/usr/local/bin/redis-cli
- shutdown (code=exit
- ed, status=0/SUCCESS)
- Main PID: 3124 (redis-server)
- Tasks: 3 (limit: 512)
- Memory: 864.0K
- CPU: 179ms
- CGroup: /system.slice/redis.service
- └─3124 /usr/local/bin/redis-server 127.0.0.1:6379
- . . .
复制代码 测试 Redis 实例功能
要测试服务是否正常运行,使用命令行客户端连接到 Redis 服务器:
在随后的提示符中,通过输入以下内容测试连接:
您应该看到:
通过输入以下内容检查是否可以设置键:
现在,通过输入以下内容检索值:
您应该可以或许检索到我们存储的值:
退出 Redis 提示符返回到 shell:
作为最后的测试,让我们重新启动 Redis 实例:
- sudo systemctl restart redis
复制代码 现在,再次连接客户端并确认您的测试值仍旧可用:
您的键的值仍旧可以访问:
完成后再次返回到 shell:
启用 Redis 开机自启动
如果你的全部测试都通过了,而且你希望在服务器启动时主动启动 Redis,你可以启用 systemd 服务。
要这样做,请输入以下命令:
- sudo systemctl enable redis
复制代码- Created symlink from /etc/systemd/system/multi-user.target.wants/redis.service to /etc/systemd/system/redis.service.
复制代码 结论
现在你的 Ubuntu 16.04 服务器上应该已经安装并配置了 Redis 实例。要相识更多关于如何保护你的 Redis 安装的信息,请参考我们的《如何在 Ubuntu 14.04 上保护你的 Redis 安装》(从第3步开始)。尽管它是针对 Ubuntu 14.04 编写的,但在 16.04 上也应该大部分适用。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |