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

问题描述 投票:0回答:17

我通过在终端上输入以下内容在 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

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

redis server port in-memory-database
17个回答
141
投票
$ 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

125
投票
sudo service redis-server stop

31
投票

我在 Mac 上只需输入

redis-cli shutdown
就解决了这个问题,之后就这样 重新打开终端并输入
redis-server
即可运行。


17
投票

对我来说,在经历了很多问题之后,这解决了我的问题:

 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

12
投票

这对我有用:

$ killall redis-server

并将所有内容组合成一行:

$ killall redis-server; redis-server

9
投票

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

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
投票

我阅读了 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

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


6
投票

我更喜欢使用命令参数

-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

3
投票

你可以尝试一下

$ make

然后

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

最后,您可以使用

redis-cli shutdown
命令。希望这个回答可以帮到你。


1
投票

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

sudo systemctl disable redis-server

1
投票

我很晚才回答这个问题,但这是对我有用的解决方案,我认为由于我在docker中使用redis,我无法完全杀死redis服务器。 这对我有帮助,首先我通过命令停止了redis服务器

sudo systemctl stop redis

然后通过命令运行redis服务器

redis-server

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

这不是最技术性的路径,但其他方法都行不通。


0
投票

如果您通过

snap
安装了 Redis 并尝试从其他地方运行它,也可能会发生这种情况。 如果是这种情况,您可以通过
sudo snap stop redis
停止服务。


0
投票

我不确定,但是当我第一次安装redis并遇到此消息时,结果发现这是由于redis服务器首先采用配置参数或path/to/redis.conf,所以当我在“之后什么也没传递” redis-server”它试图执行默认的redis.conf(绑定127.0.0.1,端口6379 ...),从而覆盖现有的默认redis.conf(其中包含相同的“绑定”和“端口”!!)。这就是我看到这个错误的原因,但可能你还有其他原因


0
投票

问题表明redis使用的默认端口

6379
已被其他进程使用。 所以只需更改redis服务器的端口

redis-server --port 7000
将使用端口号 7000 启动 Redis 服务器。 进而
redis-cli -p 7000
- 现在使用它让您的客户端在此端口侦听。


0
投票

sudo service redis-server stop

然后

redis-服务器

这两个命令解决了我的问题


0
投票

这对我有用:

killall redis-server
© www.soinside.com 2019 - 2024. All rights reserved.