【问题标题】:Two instances of redis process in linuxlinux中redis进程的两个实例
【发布时间】:2015-02-17 10:26:57
【问题描述】:

我总是面临在我的登录和根目录中运行两个 redis 实例的问题,如下所示

aarish@aarish:~/redis# tcp        0      0 0.0.0.0:6379            0.0.0.0:*                  LISTEN      2036/redis-server      


root@aarish:~/redis# tcp        0      0 0.0.0.0:6379            0.0.0.0:*                  LISTEN      2036/redis-server

因此,如果我必须终止服务器,我就有必须终止两个进程实例的开销,即从我的登录名开始,然后以 root 身份终止。那么有人可以首先为什么会发生这种情况?

【问题讨论】:

  • 不可能有两个进程监听同一个端口。运行netstat -nltp,你会看到Redis进程的PID。
  • @user3584460 是的,我这样做了,我发现用户和服务器进程的 PID 相同。如果我听起来模棱两可和不清楚,请参考下面的 cmets 看看是否有帮助

标签: linux redis redis-server


【解决方案1】:

我也观察到了这一点。似乎 redis 在将数据转储到磁盘时会自行分叉。您可以在 redis 配置中配置何时发生这种情况(如果您认为这种情况发生得太频繁)。

转储完成后,第二个进程应该消失。

【讨论】:

    【解决方案2】:

    这个问题有点模棱两可,

    您是否有两个实例同时运行?

    如果是,那么检查你的redis配置文件/etc/redis应该只有一个配置文件,如果有更多,找出它们为什么在那里,你可能还需要从系统启动中删除它。

    如果每次登录某个用户时都会运行 redis 实例,请检查每个用户的 .bashrc

    需要更多帮助?然后提供一些信息,关于你的情况。

    【讨论】:

    • 准确地说,即使我从我的登录中杀死了redis服务器,redis服务器仍然在根目录下运行。为什么会这样?为什么即使从我的登录中杀死服务器也没有被杀死?
    • 当我尝试从我的登录名中终止服务器并尝试重新启动服务器时,我得到地址绑定异常,这是因为服务器或实例在根目录中运行。因此,只有在从 root 杀死服务器之后,我才能重新启动服务器。为什么会发生这种情况?
    猜你喜欢
    • 2023-04-06
    • 2011-02-27
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 2012-05-25
    • 2013-01-22
    • 2016-11-05
    • 1970-01-01
    相关资源
    最近更新 更多