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

时间:2015-10-05 11:06:40

标签: redis server port in-memory-database

我在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

如何解决此问题,有任何手动或自动过程来修复此绑定。

11 个答案:

答案 0 :(得分:50)

$ 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

答案 1 :(得分:12)

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

 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

答案 2 :(得分:6)

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

$ sudo subl /etc/redis/redis.conf

您可以使用您选择的编辑器,而不是sublime编辑器。 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

进行操作

答案 3 :(得分:2)

我更喜欢使用命令参数-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

答案 4 :(得分:2)

在Mac上,我只需输入redis-cli shutdown即可解决此问题, 重新打开终端并输入redid-server,它将正常工作。

答案 5 :(得分:2)

您可以尝试

$ make

然后

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

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

答案 6 :(得分:1)

这对我有用:

$ killall redis-server

并将所有内容合并为一行:

$ killall redis-server; redis-server

答案 7 :(得分:0)

正如它所说,该进程已经在运行,所以最好的办法是停止它,分析并重新启动它,然后执行以下操作:

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

希望它会有所帮助:)

答案 8 :(得分:0)

杀死在操作系统中启动后正在运行的进程对我来说很有效。为了防止Redis在Ubuntu OS中启动时启动:

sudo systemctl disable redis-server

答案 9 :(得分:0)

sudo service redis-server stop

答案 10 :(得分:0)

就我而言,我尝试了多次手动终止端口,但没有成功。所以我选择了简单的方法,重新安装,然后像魅力一样工作。如果您使用的是 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

不是技术上最明智的方法,但其他方法都不起作用。