如何保持redis服务器运行

时间:2013-02-11 16:54:44

标签: redis

我在nodejs app中使用redis进行会话支持。我已经安装了redis服务器,它在我运行redis-server时工作,但是当我关闭终端时redis停止并且不起作用。如何让redis服务器永远运行?

5 个答案:

答案 0 :(得分:155)

而且,如果您想要一个快速选项,请运行:redis-server --daemonize yes

答案 1 :(得分:62)

将Redis作为守护程序启动的最简单方法是编辑配置文件并更改以下行:

# By default Redis does not run as a daemon. Use 'yes' if you need it.
# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.
daemonize yes

确保在启动时在redis-server命令行上提供配置文件。

Redis发行版中提供了配置文件的示例。

答案 2 :(得分:15)

正如@DidierSpezia在回答中提到的那样,

在Redis conf文件中设置daemonize yes。 在daemonize yes一般在Redis conf文件中设置/path/to/redis.conf 它应该在/etc/

并且:

然后使用conf文件作为参数触发redis-server:

./redis-server /etc/redis.conf

答案 3 :(得分:3)

接受的答案大多已经过时。 虽然这个问题很老,但 Google 的排名仍然很高,所以请允许我更正一下。

OP 没有提供关于他的设置的任何细节,但你可以假设它是一个 linux,他没有提到容器,所以你也可以假设他在没有它们的情况下运行 redis。

有三个细节使接受的答案成为一件容易忘记的事情

  • 大多数(流行的)发行版默认都带有 systemd
  • 大多数(流行的)发行版在其官方存储库中都有 redis
  • 官方的 redis 包为 redis 安装了 systemd 服务

所以

  • 它的默认配置中有 supervised systemd
  • 开始:使用 sudo systemctl start redis@instanceName 替换“instanceName”的 redis 守护进程。还有 sudo systemctl enable redis@instanceName 用于在启动时自动启动。 (顺便说一句,忘记 service start 和 init 脚本吧!现在这些脚本比直接调用 systemctl 的可移植性要差)。
  • NOT 设置为 daemonize: yes,这会干扰 systemd 监督 redis!

Systemd 将监督、重启你的 redis,你可以为它设置服务依赖和服务前提条件,即使对于自定义可执行文件也不是那么难,搜索 systemd 单元文件(你需要大约 10 行配置文件)。很有可能,你会想要的。

如果三个细节(使 systemd 成为正确答案)不符合/不相关,则您很可能正在运行 redis 容器化。对于 docker/podman/etc.,这完全是另一个问题......(内部 linux 中没有 systemd,但你必须(或已经这样做)监督(d)容器守护进程本身)

答案 4 :(得分:0)

使用nohup在后台运行Redis。使用nohup在后台运行

  1. 转到redis src目录,在我的情况下为/ opt / redis-stable / src
  2. 运行命令nohup ./redis-server &
  3. 现在Redis在后台启动
  4. 现在按ctrl + c退出,并将日志打印到nohup.out文件中,您可以将其尾部进行监视
  5. 使用tail -f nohup.out查看redis的日志