ubuntu14.04中的redis-server:绑定地址已经在使用中

Posted

技术标签:

【中文标题】ubuntu14.04中的redis-server:绑定地址已经在使用中【英文标题】:redis-server in ubuntu14.04: Bind address already in use 【发布时间】:2016-01-02 00:28:15 【问题描述】:

我在 ubuntu 上通过在终端上输入以下命令启动了 redis 服务器:$redis-server

这会导致以下结果 > http://paste.ubuntu.com/12688632/

aruns ~ $ redis-server
27851:C 05 Oct 15:16:17.955 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
27851:M 05 Oct 15:16:17.957 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
27851:M 05 Oct 15:16:17.957 # Server can't set maximum open files to 10032 because of OS error: Operation not permitted.
27851:M 05 Oct 15:16:17.958 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
27851:M 05 Oct 15:16:17.958 # Creating Server TCP listening socket *:6379: bind: Address already in use

我该如何解决这个问题,是否有任何手动或自动过程来修复此绑定。

【问题讨论】:

【参考方案1】:

我阅读了http://www.redis.io 上的文档,我打开了redis.conf 文件来配置redis-server,它位于/etc/redis/redis.conf

$ sudo subl /etc/redis/redis.conf

您可以使用您选择的编辑器来代替崇高的编辑器,即。 nano、vi、emacs、vim、gedit。

在这个文件中,我取消了#bind 127.0.0.1 行的注释。因此,现在不是0.0.0.0:6379,而是127.0.0.1:6379

重启redis服务器

$ sudo service redis-server restart

它会声明,服务器现在准备好接受端口6379上的连接

这将使您的服务器启动,对于任何更详细的配置和设置,您可以关注此redis-server on ubuntu

【讨论】:

【参考方案2】:

对我来说,经过很多问题,这解决了我的问题:

 root@2c2379a99b47:/home/ ps -aux | grep redis
    redis     3044  0.0  0.0  37000  8780 ?        Ssl  14:59   0:00 /usr/bin/redis-server *:6379  

找到redis后,杀掉它!

root@2c2379a99b47:/home# sudo kill -9 3044
root@2c2379a99b47:/homek# sudo service redis-server restart
Stopping redis-server: redis-server.
Starting redis-server: redis-server.
root@2c2379a99b47:/home# sudo service redis-server status 
redis-server is running

【讨论】:

【参考方案3】:
$ ps aux | grep redis

找到它运行的端口..在我的情况下..

MyUser  8821   0.0  0.0  2459704    596   ??  S    4:54PM   0:03.40 redis-server *:6379

然后手动关闭端口

$ kill -9 8821

重新运行redis

$ redis-server

【讨论】:

killall redis-server 会更简单。【参考方案4】:

我更喜欢使用命令参数-ef

ps -ef|grep redis

-ef表示

-A      Display information about other users' processes, including those
         without controlling terminals.
-e      Identical to -A.

-f      Display the uid, pid, parent pid, recent CPU usage, process start
        time, controlling tty, elapsed CPU usage, and the associated com-
        mand.  If the -u option is also used, display the user name
        rather then the numeric uid.  When -o or -O is used to add to the
        display following -f, the command field is not truncated as se-
        verely as it is in other formats.

然后杀死pid

kill -9 $pid

【讨论】:

【参考方案5】:

我在 Mac 上通过输入 redis-cli shutdown 解决了这个问题,之后只是 重新打开终端并输入redis-server 即可。

【讨论】:

是的,这个解决了我的问题。谢谢! 谢谢,我也遇到了同样的问题。我解决了我的问题。【参考方案6】:

正如它所说,该进程已经在运行,所以最好的办法是停止它,分析并重新启动它,这里有以下命令:

redis-cli ping #should return 'PONG'

这解决了我的问题:

$ ps -ef |grep redis

root      6622  4836  0 11:07 pts/0    00:00:00 grep redis
redis     6632     1  0 Jun23 ?        04:21:50 /usr/bin/redis-server *:6379

找到redis进程,并停止它!

$ kill -9 6632
$ service redis restart


Stopping redis-server: [  OK  ]
Starting redis-server: [  OK  ]


$ service redis status

否则,如果这一切都不起作用,请尝试输入redis-cli

希望对你有帮助:)

【讨论】:

【参考方案7】:

在操作系统中启动后杀死正在运行的进程对我有用。在 Ubuntu 操作系统中防止 redis 在启动时启动:

sudo systemctl disable redis-server

【讨论】:

【参考方案8】:
sudo service redis-server stop

【讨论】:

这个对我来说就像一个魅力。我只是想知道为什么?它与'killall redis-server'有什么不同? 我把它们都累坏了,这是唯一一个在 Ubuntu 上对我有用【参考方案9】:

你可以试试

$ make

然后

$ sudo cp src/redis-cli /usr/local/bin/ 在终端上安装 redis 及其 redis-cli 命令。

最后,您可以使用redis-cli shutdown 命令。希望这个答案可以帮到你。

【讨论】:

【参考方案10】:

在我的情况下,我尝试了几次手动终止端口,但没有成功。所以我采取了简单的方法,重新安装并在那之后像魅力一样工作。如果您使用的是 Debian/Ubuntu:

sudo apt remove redis-server // No purge needed
sudo apt update
sudo apt install redis-server // Install once again
sudo systemctl status redis-server  // Check status of the service
redis-server    // initializes redis

不是技术上最明智的路径,但没有其他方法。

【讨论】:

【参考方案11】:

这对我有用:

$ killall redis-server

并将所有内容组合在一行中:

$ killall redis-server; redis-server

【讨论】:

以上是关于ubuntu14.04中的redis-server:绑定地址已经在使用中的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu 14.04 下安装redis后运行redis-cli 报出redis Connection refused错误已解决

Ubuntu 14.04 中的 OpenGL 4.3 开发设置

Ubuntu 14.04 中的 production.log 在哪里 - Rails 4

Pycharm在Ubuntu14.04中的基本使用指南

Ubuntu 14.04 中的 webgrind 分析文件存储在哪里?

phpMyAdmin - 错误 |缺少 mbstring 扩展名。请检查您在 Ubuntu 14.04 LTS 中的 PHP 配置