我正在尝试在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失败:未知错误
我在这里遗漏了什么吗? 请有人帮我启动这项服务,让它正常工作。
答案 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并遇到以下两个问题。存在时,它会导致服务在启动时失败,而不会将错误写入文件日志或事件日志。
Network Service
,因此请确保它可以访问将写入日志文件的目录。这两件物品一旦被用作redis,就像丝绸一样光滑。
答案 3 :(得分:0)
最近,我找到了一种如何为Redis和Sentinel设置Windows服务的方法。 在我的设置过程中,我遇到了类似的问题我终于明白了:它是由配置文件路径引起的。
我已将所有配置放入我的github项目:https://github.com/dingyuliang/Windows-Redis-Sentinel-Config