文档章节

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

银装素裹
 银装素裹
发布于 10/13 23:00
字数 709
阅读 9
收藏 0

需求分析:

我们知道在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-server.exe目录下,执行如下启动命令:

redis-server.exe --service-start

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

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

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

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

在服务选项卡中我们看到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然后再重新执行安装服务命令即可!

© 著作权归作者所有

银装素裹
粉丝 1
博文 74
码字总数 31374
作品 0
广州
高级程序员
私信 提问
深入理解Linux操作系统守护进程的意义

Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守...

JavaGG
2009/05/07
733
0
Linux守护进程--依然是进程

在linux中,服务是一种特殊的进程,可以说它和用户无关,它的作用不是完成用户任务,而是进行一些管理类的操作或者通用的服务类操作,实际上linux的服务就是一个进程,也仅仅是一个进程。 在...

晨曦之光
2012/04/10
656
0
centos服务默认说明(转载)

服务名 建议 说明 NetworkManager OFF 是一个自动切换网络连接的后台进程。很多笔记本用户都需要启用该功能,它让你能够在无线网络和有线网络之间切换。大多数台式机用户应该关闭该服务。 ac...

熊二哈
2011/09/16
305
1
Linux下常用轻量级队列服务比较

Linux IPC: IPC进程间通信(Inter-Process Communication)就是指多个进程之间相互通信,交换信息的方法。 系统消息队列功能是这些方法中的其中一种。使用此队列不需要额外安装服务,是系统内...

苗雨顺
2014/03/24
855
1
Linux守护进程--依然是进程

在linux中,服务是一种特殊的进程,可以说它和用户无关,它的作用不是完成用户任务,而是进行一些管理类的操作或者通用的服务类操作,实际上linux的服务就是一个进程,也仅仅是一个进程。 在...

晨曦之光
2012/04/10
181
0

没有更多内容

加载失败,请刷新页面

加载更多

Kafka实战(五) - 核心API及适用场景全面解析

1 四个核心API ● Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 ● Consumer API 允许一个应用程序订阅一个或多个topic ,并且对发布给他们的流式数据进行处...

JavaEdge
今天
11
0
实现线程的第三种方式——Callable & Future

Callable Runnable 封装一个异步运行的任务, 可以把它想象成为一个没有参数和返回值的异步方 法。Callable 与 Runnable 类似, 但是有返回值。Callable 接口是一个参数化的类型, 只有一 个...

ytuan996
今天
12
0
OSChina 周六乱弹 —— 不要摁F了!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @巴拉迪维 : 朴树写的词曲都给人一种莫名的失落感,不过这首歌他自己却没有唱,换成赵传这种高音阶嘶喊的确很好,低沉但却有力,老男人的呐喊...

小小编辑
今天
22
0
Android Binder机制 - interface_cast和asBinder讲解

研究Android底层代码时,尤其是Binder跨进程通信时,经常会发现interface_cast和asBinder,很容易被这两个函数绕晕,下面来讲解一下: interface_cast 下面根据下述ICameraClient例子进行分析...

天王盖地虎626
昨天
13
0
计算机实现原理专题--存储器的实现(二)

计算机实现原理专题--存储器的实现(一)中描述了一种可以记住输入端变化的装置。现需要对其功能进行扩充,我们将上面的开关定义为置位,下面的开关定义为复位,然后需要增加一个保持位,当保...

FAT_mt
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部