如何安装Redis Sentinel作为Windows服务?

时间:2014-11-27 13:34:21

标签: windows azure redis sentinel iaas

我正在尝试在Azure VM(IaaS)上将redis sentinel设置为Windows服务。

我正在使用Redis的MS OpenTech端口for Windows并运行以下命令...

redis-server --service-install --service-name rdsent redis.sentinel.conf --sentinel

此命令在我的系统上安装服务,但是当我尝试通过服务控制面板或通过以下命令启动此服务时...

redis-server --service-run --service-name rdsent redis.sentinel.conf --sentinel

然后服务无法启动,出现以下错误...

HandleServiceCommands:系统错误被捕获。错误代码= 1063,message = StartServiceCtrlDispatcherA失败:未知错误

我在这里遗漏了什么吗? 请有人帮我启动这项服务,让它正常工作。

4 个答案:

答案 0 :(得分:3)

我遇到了同样的问题,我的哨兵配置与我的相关。我发现的一些文章有一些不正确的例子,所以我的服务安装在配置正确之前不起作用。无论如何,这是你的Sentinel配置至少需要的(对于Windows Redis 2.8.17):

    sentinel monitor <name of redis cache>  <server IP> <port> 2
    sentinel down-after-milliseconds <name of redis cache> 4000
    sentinel failover-timeout <name of redis cache> 180000
    sentinel parallel-syncs <name of redis cache> 1

完成上述设置后,上面的原始Redis服务命令将起作用。

答案 1 :(得分:2)

根据MSOpenTech,以下命令应将Redis Sentinel安装为服务:

redis-server --service-install --service-name Sentinel1 sentinel.1.conf --sentinel

但是当我使用该命令时,已安装的服务将无法启动:它将立即失败,错误1067,&#34;进程意外终止。&#34;查看服务条目我猜测问题是--service-name参数没有被过滤,最终作为服务可执行路径的一部分。

我找到的工作是使用SC命令手动安装服务:

SC CREATE Sentinel1 binpath= "\"C:\Program Files\Redis\redis-server.exe\" --service-run sentinel.1.conf --sentinel"

在&#34; binpath =&#34;之后忘记所需的空间,显然该路径必须反映您已安装redis-server.exe的位置。此外,在安装服务后,我编辑了服务条目,因此Redis Sentinel将在网络服务帐户下运行。

答案 2 :(得分:0)

我正在使用v3.0.501并遇到以下两个问题。存在时,它会导致服务在启​​动时失败,而不会将错误写入文件日志或事件日志。

  1. 配置文件必须是命令行的最后一个参数。如果另一个参数是最后一个,例如--service-name,它在调用命令行时会正常运行,但会一直失败作为服务启动。
  2. 由于服务默认安装Network Service,因此请确保它可以访问将写入日志文件的目录。
  3. 这两件物品一旦被用作redis,就像丝绸一样光滑。

答案 3 :(得分:0)

最近,我找到了一种如何为Redis和Sentinel设置Windows服务的方法。 在我的设置过程中,我遇到了类似的问题我终于明白了:它是由配置文件路径引起的。

我已将所有配置放入我的github项目:https://github.com/dingyuliang/Windows-Redis-Sentinel-Config