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