4

使用 Supervisor 在生产环境中运行 redis 是一种好习惯吗?

我用谷歌搜索,但没有看到很多这样做的例子。如果不是,那么在生产中运行 redis 的正确方法是什么?

4

2 回答 2

9

我个人只是在生产中在 Redis 上使用 Monit。如果 Redis 崩溃,Monit 将重新启动它,但更重要的是,Monit 将能够监控(并在达到三分之二时发出警报)Redis 当前占用的 RAM 量(这是最大的问题)

配置可能是这样的(如果maxmemory在 Redis 中设置为 1Gb)

check process redis
  with pidfile /var/run/redis.pid
  start program = "/etc/init.d/redis-server start"
  stop program = "/etc/init.d/redis-server stop"
  if 10 restarts within 10 cycles
    then timeout
  if failed host 127.0.0.1 port 6379 then restart
  if memory is greater than 1GB for 2 cycles then alert
于 2012-09-27T08:00:26.053 回答
1

这要看情况。如果我确实在守护进程控制下使用 redis,我会使用 runit。我确实使用monit,但仅用于监控。我喜欢看到绿灯。

然而,为了让 redis 发挥真正的力量,你不能将 redis 作为一个守护进程运行,尤其是作为一个主控。如果主服务器出现故障,您将不得不将一个从服务器切换为主服务器。简单地退出,我只是在头部拍摄节点,我有一个厨师食谱会带来一个新节点。

但是话又说回来....这也取决于您拍摄快照的频率。我不快照,因此不需要守护进程控制。

人们使用 reids 来获得蛮力速度。这意味着不写入磁盘并将所有数据保存在内存中。如果一个节点出现故障...并且您没有快照...数据丢失。

于 2012-09-27T11:51:50.777 回答