您当前的位置:首页 > 计算机 > 系统应用 > Windows

Windows系统安装部署redis服务器

时间:01-01来源:作者:点击数:

0. 前言

Redis 是一个开源(BSD许可)的,非关系型的缓存数据库,因为是缓存所以redis的速度会非常快。redis主要是依靠键值对进行存储,类似于java的map、python的字典。

它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如字符串(strings)散列(hashes)列表(lists)集合(sets)有序集合(sorted sets)与范围查询,bitmapshyperloglogs地理空间(geospatial)索引半径查询。 Redis 内置了复制(replication)LUA脚本(Lua scripting)LRU驱动事件(LRU eviction)事务(transactions)和不同级别的磁盘持久化(persistence), 并通过Redis哨兵(Sentinel)和自动分区(Cluster)提供高可用性(high availability)。

redis支持许多的语言接口,如java、C、C++、C#、PHP、JavaScript、Perl、python等。

1. 下载并安装

Redis的windows版本可以从

Releases · microsoftarchive/redis · GitHub(Releases · microsoftarchive/redis (github.com))

下载。最新版本为3.2.100(2016年发布的)。另外有一个redis.com给出了一个安装连接(A.3.2 Installing Redis on Window | Redis==>Downloads · dmajkic/redis (github.com)。我一开始以为这个是不是更官方一些啊,但是点进去一看,是2011年发布的,会不会太古老了)。

可以下载Redis-x64-3.2.100.msi运行安装,也可以直接下载压缩文件包直接展开使用。我选择了msi安装,我猜测还是有一点点区别的。运行msi安装会在安装完后设置自动启动的服务(这个我不确定,但是后面的碰到的一个问题我怀疑是因为这个原因),而直接展开的话是不是会需要手动执行命令是的redis称为自动启动的服务。如果不是很自信(像我一样^-^)的话我觉得运行msi安装可能保险一些。

如果不是msi安装的话,在展开的目录底下运行以下命令应该也是将redis-server直接安装成Windows的自启动服务的(请参考:redis中redis.windows.conf和redis.windows-service.conf文件的区别;https://zhuanlan.zhihu.com/p/58944835)。

redis-server --service-install redis.windows.conf --loglevel notice --service-name Redis

运行Redis-x64-3.2.100.msi(一路缺省按‘确定’即可,安装过程中我勾选了以下两处,没有必然性,小白自我心安策略而已^-^).

安装完后安装目录下是这个样子,其实与下载的压缩包展开后完全一样(这也证实了两种方式其实是等价的)。

2. 第一次试运行

Redis-server运行必须带配置文件选项。反正不带的话它会抱怨提醒你。。。

进入到安装目录(虽然安装目录已经加入到了系统PATH中去了,但是PATH不管配置文件参数的搜索,所以要利用安装目录下的配置文件,还是得进入到安装目录下),打开cmd窗口(我不知道以管理员身份运行是不是必须的,但是这样总保险一些吧^-^),运行“redis-server.exe redis.windows.conf”,会看到以下画面。这就表示启动了redis server了。

按Ctrl-C就关掉redis-server了(或者直接关掉这个cmd窗口,但是这样的话就看不到下面这个画面了):

3. 如何确认redis-server可用了?

这里介绍两种方式。

3.1 运行redis-cli

第一种是运行redis-cli启动客户端来与server交互。

如上图所示,从redis-cli界面可以给redis-server发送命令。

第一条set命令失败了,是因为我手欠把配置文件改成了要求密码^-^. 后面先执行auth命令向server发送密码请求连接,然后再set然后get,get查询得到的信息与set所设置的信息相同,说明client与server通话成功。

3.2 用python脚本

这种方式更有实际应用价值吧,毕竟在实用中更可能是用脚本的方式进行数据库的访问。这种方式要求先安装python的redis模块(pip/conda install redis都可以),安装完后(在server启动的条件下),执行以下脚本:

import redis

if __name__ == "__main__":
    r = redis.Redis(host="localhost",port=6379,password=PASSWORD,decode_responses=True)
    #r = redis.Redis(host="192.168.1.67",port=6379,password=PASSWORD,decode_responses=True) # NG...But why?
    r.set("msg","connect to redis_server sucessfully!")
    print(r.get("msg"))

如果get命令打印出来的信息与set所设置的信息相同,就表示测试成功。

但是以上有一个遗留问题,host必须设置成”localhost”。像下面这条语句一样设置成我本机的局域IP地址的话,就连接不了,不知道为什么?有哪位大佬知道在评论区指教一二不胜感激!

4. Windows自启动服务

我在头一天安装并测试完后,第二天重启机器后按部就班地到redis安装目录下去执行redis-server,结果,没有看到熟悉的画面,顿时觉得有点慌神了。。。

辗转调查啊。。。最终我猜测是因为我用msi安装,所以把redis-server设定成windows自动启动的服务了(前面提到过),但是这个自启动要在计算机重新启动后生效。所以呢,前一天在安装后后在终端执行以上命令会出现正常的启动画面,但是计算机重启后redis自动启动了,再在命令行执行这个命令已经属于多余的了。为了验证这个猜测,我先关闭掉redis服务:

此电脑(右键点击)-->管理-->服务和应用程序-->服务

找到redis服务并停用,然后再从命令行重新执行以上命令,又看到了熟悉的画面,心中觉得好温暖^-^.

不过知道了这一点后,以后就不必再额外地去启动redis服务了。

5. 两个配置文件

细致的小伙伴们可能已经注意到了,在安装目录下有两个配置文件:

redis.windows.conf

redis.windows-services.conf

为什么要有两个呢,它们有什么区别?用对比工具对比的话,你会发现两者并没有什么本质的区别。但是(在redis没有被自动启动时。可以通过任务管理器确认没有redis在运行)从命令行用两个配置文件执行redis-server.exe的话却又有点区别。

运行redis-server.exe redis.windows.conf马上会蹦出以上哪个熟悉的启动画面。

运行redis-server.exe redis.windows-service.conf则就是以下这个冷冰冰的画面:

但是运行redis-cli去访问server的话,确实又可以,后面这条命令也是可以的。只不过后者沉默了一点点而已。

进一步调查发现两者确实是有区别的(可能正是这个区别导致后者的运行是寡言少语的^-^),区别就是其实后者是正宫,windows自动启动redis服务时是用redis.windows-service.conf(如下图所示)。相应地,redis.windows.conf可以理解为是用户自定义的配置文件的一个template,用于从命令行手动启动redis服务时使用的配置文件(?)。至少这样从逻辑上貌似说得通了。

此电脑(右键点击)-->管理-->服务和应用程序-->服务,选中redis然后点选属性:

6. 小结

以上概要性地介绍了redis在windows安装并部署成自动服务的一些基础知识。有关redis服务的高级配置已经各种使用命令有待进一步学习总结。。。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门