6

我今天第一次在本地机器上启动了 Redis,然后在我关闭我的 Rails 应用程序后关闭了所有终端窗口。一个小时后,我再次启动 Rails 应用程序并执行以下操作以启动 redis 服务器

redis-server /usr/local/etc/redis.conf

然而它告诉我

# Opening port 6379: bind: Address already in use

因此,我认为即使我关闭了 Mac 上的终端窗口,它仍在运行其早期实例。

看着这个页面http://redis.io/commands/shutdown,我试图运行

SHUTDOWN

在终端窗口中,但我得到了这个响应

SHUTDOWN: NOT super-user

因此我尝试了(即使我没有使用 sudo 来启动它)

sudo SHUTDOWN 

在它询问我的密码后,它输出了这个

usage: shutdown [-] [-h [-u] [-n] | -r [-n] | -s | -k] time [warning-message ...]

但是当我随机运行时shutdown -s它说

 SHUTDOWN: NOT super-user

关闭应用程序时关闭 Redis 的正确方法是什么?

4

3 回答 3

37

使用内置的 redis 客户端:redis-cli shutdown

于 2013-10-09T17:57:32.487 回答
4

这意味着作为命令发送到 redis,而不是在您的终端上执行。

在这种情况下,您实际上可以只kill从终端进行 redis,因为在收到SIGTERM信号后,它将安排 SHUTDOWN 而不是简单地退出。

有关参考,请参阅信号处理文档页面。

于 2013-04-22T03:18:11.980 回答
3

找出在您的机器上运行的 Redis 实例的进程 ID...

> ps aux | grep redis

impadmin 23277  0.0  0.0  35044  1976 pts/2    Sl+  14:19   0:00 src/redis-server

...然后运行:

> kill 23277
于 2014-03-12T08:50:07.870 回答