在 Ubuntu 16.04 LTS 上安装 Redis 服务器

在 Ubuntu 16.04 LTS 上安装 Redis 服务器

我有个问题,希望有人能帮助我。我拥有一个基于 OpenVZ 的 vServer(我讨厌内核限制),无法安装 Redis。

我该怎么办:

  • 全新安装 Ubuntu 16.04。LTS 最低配置
  • 以 root 身份登录
  • 跑步:apt update
  • 跑步:apt upgrade

(我不知道这是否相关,但在过程中出现了这种情况:

正在安装配置文件 /etc/systemd/system.conf 的新版本 ... addgroup: 组“systemd-journal”已作为系统组存在。退出。[/usr/lib/tmpfiles.d/var.conf:14] 路径“/var/log”的重复行,忽略。无法验证路径 /var/run/sshd:符号链接层级过多无法验证路径 /var/run/sudo:符号链接层级过多无法验证路径 /var/run/sudo/ts:符号链接层级过多(正在读取数据库... 当前安装了 16369 个文件和目录。)

  • 跑步:apt install redis-server

问题出现:

设置 redis-server(2:3.0.6-1)...

/run/redis 的 fchownat() 失败:参数无效

insserv:警告:脚本已损坏或无效:/etc/init.d/../rc2.d/S15ssh_gen_host_keys

redis-server.service 的作业因超时而失败。有关详细信息,请参阅“systemctl status redis-server.service”和“journalctl -xe”。

invoke-rc.d: initscript redis-server,操作“启动”失败。

...

进程:11845 ExecStopPost=/bin/run-parts --verbose /etc/redis/redis-server.p ost-down.d(代码=exited,状态=0/SUCCESS)

进程:11839 ExecStartPost=/bin/run-parts --verbose /etc/redis/redis-server.post-up.d(code=exited,status=0/SUCCESS)

进程:11837 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf(code=exi ted,status=0/SUCCESS)

进程:11833 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.p re-up.d(代码=exited,状态=0/SUCCESS)

systemd[1]:无法启动高级键值....

systemd[1]: redis-server.service: 单元已进入....

systemd[1]: redis-server.service: 失败,r....

提示:有些线条被省略了,使用 -l 可以完整显示。

dpkg:错误处理软件包 redis-server (--configure):子进程安装的安装后脚本返回错误退出状态 1

处理 libc-bin (2.23-0ubuntu10) 的触发器...

正在处理 systemd (229-4ubuntu21.9) 的触发器...

处理 ureadahead 的触发器(0.100.0-19)...

处理时遇到错误:redis-server

E: 子进程 /usr/bin/dpkg 返回错误代码 (1)

W:操作在完成之前被中断

  • 跑步:systemctl status redis-server.service

redis-server.service - 高级键值存储 已加载:已加载(/lib/systemd/system/redis-server.service;已启用;供应商预设:已启用) 活动:正在激活(start-post) 自 2018-11-19 星期一 19:41:53 CET;54 秒前 文档:http://redis.io/documentation,man:redis-server(1) 进程:11966 ExecStopPost=/bin/run-parts --verbose /etc/redis/redis-server.post-down.d (code=exited, status=0/SUCC
进程:11978 ExecStartPost=/bin/run-parts --verbose /etc/redis/redis-server.post-up.d (code=exited, status=0/SUCCE
进程:11976 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS) 进程:11972 ExecStartPre=/bin/run-parts --verbose /etc/redis/redis-server.pre-up.d (code=exited, status=0/SUCCESS CGroup:/system.slice/redis-server.service └─11977 /usr/bin/redis 服务器 127.0.0.1:6379

systemd[1]:正在启动高级键值存储…

运行部分[11972]: 运行部分:正在执行/etc/redis/redis-server.pre-up.d/00_example

运行部分[11978]: 运行部分:正在执行/etc/redis/redis-server.post-up.d/00_example

systemd[1]: redis-server.service: PID 文件 /var/run/redis/redis-server.pid 不可读(

之后我无法启动 Redis-Server(由于超出超时而失败)。我该怎么做才能解决这个问题?我在这个论坛上看到了很多关于 redis 的帖子,但解决方案对我没有帮助。抱歉我的英语不好。提前谢谢。

答案1

要修复您的错误:以非 root 用户身份安装 Redis。

sudo apt-get update
sudo apt-get install build-essential tcl

下载并提取源代码

cd /tmp

现在,下载最新的稳定版 Redis。稳定版下载 URL 始终可用:

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

输入以下命令解压 tarball:

tar xzvf redis-stable.tar.gz

进入刚刚解压的Redis源目录结构:

cd redis-stable

构建并安装 Redis

编译依赖项:

cd deps
sudo make hiredis jemalloc linenoise lua geohash-int
cd ..

通过键入以下内容编译 Redis 二进制文件:

make

编译二进制文件后,运行测试套件以确保所有内容均已正确构建。您可以输入以下命令执行此操作:

make test

这通常需要几分钟才能运行。完成后,您可以通过键入以下内容将二进制文件安装到系统中:

sudo make install

首先创建 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

输入以下命令启动 systemd 服务:

sudo systemctl start redis

运行以下命令检查服务是否没有错误:

sudo systemctl status redis

来源:https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-redis-on-ubuntu-16-04

相关内容