在Ubuntu 16.04上安装和配置Redis的方法

打印 上一主题 下一主题

主题 725|帖子 725|积分 2175

前些天发现了一个巨牛的人工智能学习网站,普通易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介

Redis 是一个内存中的键值存储,以其机动性、性能和广泛的语言支持而闻名。在本指南中,我们将演示如何在 Ubuntu 16.04 服务器上安装和配置 Redis。
先决条件

要完成本指南,您需要访问 Ubuntu 16.04 服务器。您需要一个具有 sudo 权限的非根用户,以实行此过程所需的管理功能。您可以按照我们的 Ubuntu 16.04 初始服务器设置指南来相识如何设置具有这些权限的帐户。
当您准备好开始时,请使用您的 sudo 用户登录到 Ubuntu 16.04 服务器并继续以下利用。
安装构建和测试依靠项

为了获得 Redis 的最新版本,我们将从源代码编译和安装软件。在下载代码之前,我们需要满足构建依靠项,以便编译软件。
为此,我们可以从 Ubuntu 存储库安装 build-essential 元包。我们还将下载 tcl 包,这样我们就可以测试我们的二进制文件。
我们可以通过输入以下命令来更新本地的 apt 包缓存并安装依靠项:
  1. sudo apt-get update
  2. sudo apt-get install build-essential tcl
复制代码
下载、编译和安装 Redis

接下来,我们可以开始构建 Redis。
下载并解压源代码

由于我们不需要恒久保留我们将要编译的源代码(我们可以随时重新下载它),我们将在 /tmp 目次中构建。让我们现在切换到那里:
  1. cd /tmp
复制代码
现在,下载最新稳定版本的 Redis。这始终可在稳定的下载 URL 上找到:
  1. curl -O http://download.redis.io/redis-stable.tar.gz
复制代码
通过输入以下命令解压 tarball:
  1. tar xzvf redis-stable.tar.gz
复制代码
进入刚刚提取的 Redis 源目次结构:
  1. cd redis-stable
复制代码
构建和安装 Redis

现在,我们可以通过输入以下命令来编译 Redis 二进制文件:
  1. make
复制代码
在编译二进制文件后,运行测试套件以确保一切都构建精确。您可以通过输入以下命令来实行此利用:
  1. make
  2. test
复制代码
这通常需要几分钟才能运行。完成后,您可以通过输入以下命令将二进制文件安装到系统中:
  1. sudo make
  2. install
复制代码
配置 Redis

现在 Redis 已安装,我们可以开始配置它。
首先,我们需要创建一个配置目次。我们将使用传统的 /etc/redis 目次,可以通过输入以下命令来创建:
  1. sudo mkdir /etc/redis
复制代码
现在,复制 Redis 源存档中包罗的示例 Redis 配置文件:
  1. sudo cp /tmp/redis-stable/redis.conf /etc/redis
复制代码
接下来,我们可以打开文件以调解配置中的一些项目:
  1. sudo nano /etc/redis/redis.conf
复制代码
在文件中,找到 supervised 指令。当前,此项设置为 no。由于我们正在运利用用 systemd init 系统的利用系统,我们可以将其更改为 systemd:
  1. . . .
  2. # If you run Redis from upstart or systemd, Redis can interact with your
  3. # supervision tree. Options:
  4. #   supervised no      - no supervision interaction
  5. #   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
  6. #   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
  7. #   supervised auto    - detect upstart or systemd method based on
  8. #                        UPSTART_JOB or NOTIFY_SOCKET environment variables
  9. # Note: these supervision methods only signal "process is ready."
  10. #       They do not enable continuous liveness ping
  11. s back to your supervisor.
  12. supervised systemd
  13. . . .
复制代码
接下来,找到 dir 目次。此选项指定 Redis 将用于转储持久数据的目次。我们需要选择一个 Redis 将具有写权限且寻常用户无法查看的位置。
我们将使用 /var/lib/redis 目次,稍后我们将在其中创建:
  1. . . .
  2. # The working directory.
  3. #
  4. # The DB will be written inside this directory, with the filename specified
  5. # above using the 'dbfilename' configuration directive.
  6. #
  7. # The Append Only File will also be created inside this directory.
  8. #
  9. # Note that you must specify a directory here, not a file name.
  10. dir /var/lib/redis
  11. . . .
复制代码
完成后保存并关闭文件。
创建 Redis systemd 单位文件

接下来,我们可以创建一个 systemd 单位文件,以便 init 系统可以管理 Redis 历程。
首先创建并打开 /etc/systemd/system/redis.service 文件:
  1. sudo nano /etc/systemd/system/redis.service
复制代码
在文件中,我们可以在 [Unit] 部分开始添加描述,并定义一个要求,在启动此服务之前网络必须可用:
  1. [Unit]
  2. Description=Redis 内存数据存储
  3. After=network.target
复制代码
在 [Service] 部分,我们需要指定服务的行为。出于安全思量,我们不应该以 root 用户身份运行服务。我们应该使用一个专门的用户和组,我们将简单地称之为 redis。我们将立刻创建这些。
要启动服务,我们只需要调用 redis-server 二进制文件,指向我们的配置。要克制它,我们可以使用 Redis 的 shutdown 命令,可以用 redis-cli

二进制文件实行。此外,由于我们希望 Redis 在大概的情况下从故障中规复,我们将 Restart 指令设置为 “always”:
  1. [Unit]
  2. Description=Redis 内存数据存储
  3. After=network.target
  4. [Service]User=redisGroup=redisExecStart=/usr/local/bin/redis-server /etc/redis/redis.confExecStop=/usr/local/bin/redis-cli
  5. shutdownRestart=always
复制代码
最后,在 [Install] 部分,我们可以定义服务在启用时应附加到的 systemd 目标(配置为在启动时启动):
  1. [Unit]
  2. Description=Redis 内存数据存储
  3. After=network.target
  4. [Service]User=redisGroup=redisExecStart=/usr/local/bin/redis-server /etc/redis/redis.confExecStop=/usr/local/bin/redis-cli
  5. shutdownRestart=always[Install]WantedBy=multi-user.target
复制代码
完成后保存并关闭文件。
创建 Redis 用户、组和目次

现在,我们只需创建在前两个文件中引用的用户、组和目次。
首先创建 redis 用户和组。可以通过输入以下命令一次性完成:
  1. sudo adduser --system --group --no-create-home redis
复制代码
现在,我们可以通过输入以下命令创建 /var/lib/redis 目次:
  1. sudo mkdir /var/lib/redis
复制代码
我们应该让 redis 用户和组拥有此目次的全部权:
  1. sudo chown redis:redis /var/lib/redis
复制代码
调解权限,以便寻常用户无法访问此位置:
  1. sudo chmod 770 /var/lib/redis
复制代码
启动和测试 Redis

现在,我们准备启动 Redis 服务器。
启动 Redis 服务

通过输入以下命令启动 systemd 服务:
  1. sudo systemctl start redis
复制代码
通过运行以下命令检查服务是否没有错误:
  1. sudo systemctl status redis
复制代码
您应该看到雷同于以下内容:
  1. ● redis.service - Redis 服务器
  2.    Loaded: loaded (/etc/systemd/system/redis.service; enabled; vendor preset: enabled)
  3.    Active: active (running) since Wed 2016-05-11 14:38:08 EDT; 1min 43s ago
  4.   Process: 3115 ExecStop=/usr/local/bin/redis-cli
  5. shutdown (code=exit
  6. ed, status=0/SUCCESS)
  7. Main PID: 3124 (redis-server)
  8.     Tasks: 3 (limit: 512)
  9.    Memory: 864.0K
  10.       CPU: 179ms
  11.    CGroup: /system.slice/redis.service
  12.            └─3124 /usr/local/bin/redis-server 127.0.0.1:6379      
  13. . . .
复制代码
测试 Redis 实例功能

要测试服务是否正常运行,使用命令行客户端连接到 Redis 服务器:
  1. redis-cli
复制代码
在随后的提示符中,通过输入以下内容测试连接:
  1. ping
复制代码
您应该看到:
  1. PONG
复制代码
通过输入以下内容检查是否可以设置键:
  1. set test
  2. "It's working!"
复制代码
  1. OK
复制代码
现在,通过输入以下内容检索值:
  1. get test
复制代码
您应该可以或许检索到我们存储的值:
  1. "It's working!"
复制代码
退出 Redis 提示符返回到 shell:
  1. exit
复制代码
作为最后的测试,让我们重新启动 Redis 实例:
  1. sudo systemctl restart redis
复制代码
现在,再次连接客户端并确认您的测试值仍旧可用:
  1. redis-cli
复制代码
  1. get test
复制代码
您的键的值仍旧可以访问:
  1. "It's working!"
复制代码
完成后再次返回到 shell:
  1. exit
复制代码
启用 Redis 开机自启动

如果你的全部测试都通过了,而且你希望在服务器启动时主动启动 Redis,你可以启用 systemd 服务。
要这样做,请输入以下命令:
  1. sudo systemctl enable redis
复制代码
  1. 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企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表