.net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 2GB
简介: Cygwin工具编译Redis Redis6.x版本是未编译版本(官方很调皮,所以没办法,咱只好帮他们编译一下了),所以咱们先下载一个Cygwin,用它来对Redis进行编译。


Cygwin工具编译Redis


Redis6.x版本是未编译版本(官方很调皮,所以没办法,咱只好帮他们编译一下了),所以咱们先下载一个Cygwin,用它来对Redis进行编译。

Cygwin下载地址:

https://cygwin.com/setup-x86_64.exe


下面是安装Cywin的一些注意事项说明:


1、前面可以自己默认或者自由选择,到达下图所示内容以后,添加阿里云镜像。不然可能会下载失败。


1995789-20210725171344230-1719829331.png

阿里云镜像地址:

http://mirrors.aliyun.com/cygwin/

 

2、到达下面页面时候,需要搜索并添加以下五个命令工具,因为下载的6.x版本的redis是未编译的代码,所以需要用这些工具提供的一些命令来编译Redis使用。命令工具包括:

make

gcc-core

gcc-g++

libgcc1

libgccpp1

 

添加方法如图所示:

1995789-20210725171409606-2042026395.png


1995789-20210725171425173-1484522668.png

1995789-20210725171445269-209167080.png

 1995789-20210725171456320-356857113.png

1995789-20210725171509962-1519565015.png

添加完成以后,在下一步的预览页面,就可以看见我们添加的工具都包含在里面了:

 

 1995789-20210725171527752-1764582463.png


然后会开始下载,如下图所示。


1995789-20210725171539934-59398929.png

安装完成以后,运行Cygin,会在安装目录下的home文件夹下,生成一个当前用户名的文件夹:


1995789-20210725171556212-1168858603.png

 

现在,去到Redis官网下载Redis压缩包。当前我使用的最新的稳定版本是6.2.5(当前日期是2021-07-25)。下载地址是:

https://download.redis.io/releases/redis-6.2.5.tar.gz?_ga=2.250097734.1518354412.1627182860-2006233948.1627182860

下载以后,把它丢到刚刚的Home目录下的用户名文件夹下:

1995789-20210725171618585-359114170.png


gywin界面上面查看,可以看见就这么个文件。


1995789-20210725171709121-1665522366.png

 

先解压。命令: tar -zxvf 你的redis文件夹压缩包:

1995789-20210725171650542-2091970802.png


解压以后,有兴趣的还可以进去解压文件夹下面瞅瞅,例如src下面,可以看见这家伙几乎一堆.h.c的文件,说明这家伙太调皮了,写完代码都不编译,坏得很。.h.c文件,是C语言的头部文件,以及C语言的代码文件,有兴趣的小伙伴也可以看源码学习学习,也许有什么新发现。

 1995789-20210725171726657-102968169.png


返回上级目录 xxx/redis-xxx,并且使用make命令。Duang,开始编译……

1995789-20210725171740650-1040347079.png


似乎预感到不对……时间一秒一秒过去,终于熬到了最后,what the fuck~~报错了:

1995789-20210725171758519-1351759422.png

 

算了,作为一个成年人,一条路走不通,咱走第二条路,换个Redis版本。可能是版本太新了,假装是它自己的问题,咱下个低一点的版本吧。这次换成了6.0.15

1995789-20210725171815684-878990927.png

 

以上的操作重新走一个,解压,cd到解压的目录下,以及make三连击:


1995789-20210725171832429-635849009.png

 

Make~ 开始进入漫长的编译等待中……

1995789-20210725171850730-1768123807.png


直到最后,编译完成~~想必是我的真诚感动了这个版本的Redis,所以终于编译成功了:

1995789-20210725171902842-957963603.png

 

SRC目录下,会生成很多文件,咱们把生成的文件(除去.o文件、.d文件以及原本存在的.c.h文件外,其他的都拷贝走),复制一份到自定义的某个地方,例如 C:/Redis :

1995789-20210725171915373-672494722.png

 

Cygwin/bin下面的 cygwin1.dll也拷贝到上面的文件夹下:

1995789-20210725171927493-1983630316.png

 

Redis解压后的redis.conf配置文件,也拷贝过去。于是最终的文件包括以下这些:

 1995789-20210725171938323-220257836.png


启动Redis并测试


使用管理员权限打开CMD命令窗口,进入到redis下,直接运行 redis-server.exe

1995789-20210725172020650-685499465.png

 

以上,代表redis运行成功了。现在做个简单测试,保持该窗口打开状态,继续打开一个新的cmd窗口,输入命令 redis-cli.exe -h 127.0.0.1 -p 6379


然后通过 set get命令,检测结果。

1995789-20210725172048528-994733098.png

 

现在打开Redis管理工具,看看是否可以连接上Redis:

1995789-20210725172105000-1470416722.png

 

由于没有设置密码,所以可以直接测试通过,并且可以看见上面咱们用命令设置的一个name的值:

 1995789-20210725172117465-90899713.png


修改redis密码


redis.conf配置文件夹下,找到requirepass,去掉注释,并且设置自己的密码,例如我这边设置的密码是 wesky.123

1995789-20210725172146042-1960069689.png

 

默认情况下,redis配置文件里面只设置了本地访问权限,把 bind 127.0.0.1前面加个注释,即可实现远程访问。或者把127.0.0.1改为 0.0.0.0也是OK的。或者设置为多个ip,这样安全性高一点。我喜欢偷懒,就直接注释掉吧:


1995789-20210725172255658-1212529135.png

 

设置允许启用守护进程(后台运行的意思)。将daemonize设置为yes

1995789-20210725172322398-958529840.png

 

Redis配置为windows服务


添加上面redis的文件夹路径到环境变量的path里面:


1995789-20210725172402108-52796776.png

先退出上面的redis。同时,退出以后,redis客户端就无法连接上了。所以为了将来不需要每次都手动启动redis,我们接下来把redis添加到Windows服务上。

1995789-20210725172433304-1044360463.png

 

以上版本经过一番折腾,目前无法部署到Windows服务上,所以顺手再降低了版本,用了5.0.10版本。放弃治疗了……如果其他大佬继续后续操作没有异常,那就是我姿势不对,欢迎指导。

1995789-20210725172445167-356305379.png

 

使用管理员权限打开paoweshell(或者管理员权限打开cmd也是OK的),redis目录下使用命令:

redis-server.exe --service-install redis.windows.conf(以自己具体的配置文件名称为准)

1995789-20210725172609018-1440338982.png

 

提示成功,转到Windows服务上面,进行启动redis服务:

1995789-20210725172621135-1680470527.png

 

Redis 6.x 看来暂时跟我无缘了,只能5.x暂时续一下命了。悲痛欲绝~~也可能姿势不对,欢迎大佬们提供建议。

现在验证下是不是可以用了。在客户端上面加一个key-value

1995789-20210725172746518-1263909335.png

 

在后端通过get命令获取:

1995789-20210725172825436-399904754.png

 

尴尬,雷猴啊被解析成其他格式的了。

换个姿势验证下,设置一个新的keyvalue,并查看:

1995789-20210725172835560-1259322341.png

 

以上,bingo~~


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5天前
|
Java Windows
SpringBoot Windows 自启动 - 通过 Windows Service 服务实现
SpringBoot Windows 自启动 - 通过 Windows Service 服务实现
18 2
|
7天前
|
编解码 开发工具 Android开发
Windows平台RTMP推送|轻量级RTSP服务如何实现摄像头叠加到屏幕输出
大牛直播SDK采用先进的图层概念实现视频叠加,如将摄像头画面实时叠加到屏幕输出,以C#为例展示了具体的配置方法。用户可在推送RTMP或启动RTSP服务前选择“摄像头叠加到屏幕”的选项,并调整位置。SDK还支持摄像头的开启与关闭、水平垂直翻转及旋转等功能。此外,该SDK提供了丰富的特性,包括但不限于视频和音频采集处理、硬编码与软编码支持、多实例推送、水印添加、网络适应性调整等,几乎涵盖了RTMP推送的所有常规需求,并能与播放器协同工作达到毫秒级的低延迟,非常适合无纸化同屏、智慧教室等应用场景。
|
7天前
|
开发工具 数据安全/隐私保护 开发者
Windows平台RTMP推送|轻量级RTSP服务摄像头如何添加动态文字水印
本文介绍了在Windows平台上实现摄像头或屏幕流中动态文字水印的技术方法。通过大牛直播SDK示例,展示了如何从文本获取RGB数据,并将其叠加到视频流上。文中提供了代码片段来说明如何开启文字水印、生成包含实时信息的位图、以及如何更新和控制图层。最终实现了动态显示时间和位置信息的需求。对这一领域的开发者而言,本文提供了实用的参考与指导。
|
7天前
|
编解码 Linux 开发工具
如何启动Windows平台轻量级RTSP服务生成RTSP拉流URL
为满足内网超低延迟需求,我们开发了轻量级RTSP服务模块,避免用户额外部署服务器。此模块集成于推送端SDK中,支持Windows、Linux、Android及iOS平台,可将本地音视频数据编码后通过RTSP协议提供。具备RTSP鉴权、单播/组播等功能,支持H.264/H.265编码,同时可创建多个服务实例,并查询连接数。实测总延迟约200-300毫秒,兼具稳定与高效。
|
5天前
|
Java 数据安全/隐私保护 Windows
Windows Service 服务中,不能访问挂载目录(网络映射盘)
Windows Service 服务中,不能访问挂载目录(网络映射盘)
11 0
|
6天前
|
Linux Windows
【Linux】rzsz——本地Windows与云端Linux文件传输工具
【Linux】rzsz——本地Windows与云端Linux文件传输工具
|
6天前
|
编解码 开发工具 C#
Windows电脑如何启动RTSP服务实现本地摄像头数据共享
本文介绍如何利用大牛直播SDK中的轻量级RTSP服务,在Windows平台上轻松采集摄像头数据并生成本地RTSP流。通过SDK提供的SmartPublisherDemo工具,用户能简便地选择摄像头、配置分辨率与帧率,并启动RTSP服务。此外,还支持音频采集、多端口服务以及动态水印等功能。生成的RTSP URL可用于其他终端拉流播放,无需额外部署服务器。该服务适配多种应用场景,如安防监控、电子教室等,并兼容Windows 7及以上版本。对于希望集成此功能的开发者,SDK提供了C++及C#接口,并支持多种编译模式。
|
7天前
|
监控 开发工具 数据安全/隐私保护
Windows平台如何实现多路RTSP|RTMP流合成后录像或转发RTMP服务
本文介绍了在Windows平台上实现多路RTSP/RTMP视频流的合并技术。主要应用场景包括驾考、全景摄像头以及多路会议录制等。技术实现上,文章详细展示了如何使用特定的SDK来解码并回调YUV或RGB数据,再将这些数据按照图层形式进行合成。示例代码中给出了初始化参数、设置视频帧回调函数、以及如何配置不同图层的具体步骤。最终,合成后的视频可以推送到RTMP服务器、注入到本地RTSP服务,或是直接录制为MP4文件。此外,还提供了添加实时文字水印的方法,并展示了四路视频流合成后的“四宫格”效果。
|
14天前
|
C# 开发者 Windows
WPF在.NET9中的重大更新:Windows 11 主题
WPF在.NET9中的重大更新:Windows 11 主题
29 0