使用 Supervisor 在生产环境中运行 redis 是一种好习惯吗?
我用谷歌搜索,但没有看到很多这样做的例子。如果不是,那么在生产中运行 redis 的正确方法是什么?
使用 Supervisor 在生产环境中运行 redis 是一种好习惯吗?
我用谷歌搜索,但没有看到很多这样做的例子。如果不是,那么在生产中运行 redis 的正确方法是什么?
我个人只是在生产中在 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
这要看情况。如果我确实在守护进程控制下使用 redis,我会使用 runit。我确实使用monit,但仅用于监控。我喜欢看到绿灯。
然而,为了让 redis 发挥真正的力量,你不能将 redis 作为一个守护进程运行,尤其是作为一个主控。如果主服务器出现故障,您将不得不将一个从服务器切换为主服务器。简单地退出,我只是在头部拍摄节点,我有一个厨师食谱会带来一个新节点。
但是话又说回来....这也取决于您拍摄快照的频率。我不快照,因此不需要守护进程控制。
人们使用 reids 来获得蛮力速度。这意味着不写入磁盘并将所有数据保存在内存中。如果一个节点出现故障...并且您没有快照...数据丢失。