需求分析:

我们知道在linux系统下redis.conf配置文件里面参数daemonize yes可以直接指定redis以守护进程方式执行,所谓守护进程方式运行说白了就是后台运行而不阻塞当前进程,另外redis配置文件中也指明了daemonize yes参数在window不支持,那有没有办法实现在Window下让redis服务在后台运行,方法肯定是有的,而且redis配置文件里面也说了,在window下可以将redis作为Window服务运行,这样就不用担心关闭掉redis-server.exe后还担心redis服务器关闭,也不用每次开机都重新执行redis-server.exe redis.conf来启动redis,下面就是实现步骤:

第一步:将redis-server.exe安装为window下的一个服务

首先切换到redis-server.exe的目录,然后执行如下安装命令:

redis-server.exe --service-install redis.windows.conf --loglevel verbose

其中:--service-install 目的是告诉window要把redis-server.exe安装为一个服务

       redis.windows.conf 目的是告诉window启动的时候带上这个参数,这个参数就是redis的配置文件,也就是启动的时候指定redis.window.conf为redis的配置文件

    --loglevel 这个参数是指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose

执行命令的结果如下,表明安装服务成功:

Redis在Window下实现类似linux下的以守护进程方式运行服务-LMLPHP

第二步:启动服务器

切换到redis-server.exe目录下,执行如下启动命令:

redis-server.exe --service-start

看到如下结果后,表明redis启动成功,这时我们发现已经不阻塞当前进程了,也就是说redis服务成功在后台运行了

Redis在Window下实现类似linux下的以守护进程方式运行服务-LMLPHP

此时我们怎么验证redis有没有在后台服务中运行呢?

第三步:验证redis服务是否在后台中运行:

打开任务管理器,快捷键是 ctrl+shift+esc键

Redis在Window下实现类似linux下的以守护进程方式运行服务-LMLPHP

在服务选项卡中我们看到redis了,且状态是正在运行,说明目的已经达到!

第四步:补充

卸载服务:切换到redis-server.exe目录下,执行如下卸载命令:

redis-server.exe --service-uninstall

停止服务:切换到redis-server.exe目录下,执行如下停止命令:

redis-server.exe --service-stop

安装的时候可以报如下错误:

[10416] 13 Oct 22:23:30.501 # HandleServiceCommands: system error caught. error
code=1073, message = CreateService failed: unknown error

原因是之前已经有reids服务了,重新执行卸载命令redis-server.exe --service-uninstall然后再重新执行安装服务命令即可!

10-14 07:34