使用VS开发Windows服务程序

来源:互联网 发布:mac电脑字体大小设置 编辑:程序博客网 时间:2024/06/03 21:33

Redis(REmote DIctionary Service, 远程字典服务) 是一个开源的,遵循BSD License,可基于内存亦可持久化的日志型、Key-Value 数据库。Redis使用ANSI C 语言编写、可以在所有POSIX系统(如Linux, *BSD, Mac OS X, Solaris等)上安装运行,也可以在windows系统上运行。Redis的数据读取速度快,写入的速度更快,根据某些基准测试,每秒可处理高达10万次的SET操作。Redis的创始人萨尔瓦多.勒圣菲利波(Salvator Sanfilippo)将Redis形容为一个“数据结构服务器”,以反映其对复杂数据类型及其他功能的细致处理。Redis支持存储的value类型包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

进入Web2.0时代,web系统要根据用户的个性化信息来生成动态页面,提供动态信息,几乎不能再通过页面的静态化技术来满足动态信息的展现,而使用传统的关系型数据库在应付高并发的数据读写请求时,显得力不从心,特别是硬盘IO的瓶颈。

当下比较流行的SNS网站为例,每天都会生成海量的用户动态信息,对于关系型数据库来说,在一张包含上亿条数据的表里面进行高效率的存储和查询,效率是比较低下的。面对不断增加的业务量和数据量,传统的关系型数据库很难进行横向的扩展,数据库无法像web server那样简单的通过添加硬件和服务节点来提高性能和负载能力。

面对现实的需求,关系型数据库的很多特性又显得无用武之地很多Web系统并不要求严格的数据库事务,对读的一致性要求很低,因此数据库的事务管理成了数据库面临高负载情况下的一个沉重负担。关系型数据库来说,插入一条数据,是肯定可以读出这条数据的,并不要求这么高的实时性。对任何系统来说,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS网站,从设计初期就避免了这种情况的产生,大多都是单表查询,从而使SQL的功能被极大的弱化。

本章即介绍使用VisualStudio开发Windows服务实现实时更新Redis数据库,将日常使用频率较高,变化频率较小的数据缓存在Redis中,Redis数据库作为系统缓存使用,进而减少数据库服务器压力。


1、打开VS新建项目,选择Windows服务,点击确定

2、添加应用程序配置文件App.config,一些程序应用的配置参数可以配置在此文件中。

3、添加应用程序安装文件。

4、服务类OnStart方法中注册System.Timers.Timer定时事件,逻辑服务从关系型数据库中读取数据更新Redis数据库。




5、编译好之后,生成解决方案(EXE)文件,然后使用installUtil.exe注册为windows服务


6、服务注册成功,打开Windows服务,即可看到我们刚刚所注册的服务,修改服务登陆身份为本地系统帐户,然后启动,服务即可完成定时更新Redis数据库。





1 0
原创粉丝点击