Cygwin工具编译Redis

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

Cygwin下载地址:

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

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

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

阿里云镜像地址:

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

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

make

gcc-core

gcc-g++

libgcc1

libgccpp1

添加方法如图所示:

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

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

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

现在,去到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目录下的用户名文件夹下:

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

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

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

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

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

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

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

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

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

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

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

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

启动Redis并测试

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

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

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

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

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

修改redis密码

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

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

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

将Redis配置为windows服务

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

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

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

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

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

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

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

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

在后端通过get命令获取:

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

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

以上,bingo~~

欢迎各位大佬观看,如果有需要白嫖我上面已经弄好的redis 5.x 版本,可以加Q群获取。

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

  1. IOS百度地图之--->第一篇《环境配置与基本使用》

    Ios 百度地图SDK简易使用说明:http://developer.baidu.com/map/index.php?title=iossdk 先道歉:对于原来上传的Demo我很抱歉,什么都没有,也没 ...

  2. 【HANA系列】【第一篇】SAP HANA XS使用JavaScript数据交互详解

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列][第一篇]SAP HANA XS ...

  3. .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统

    .NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...

  4. Redis:在windows环境安装Redis

    Redis:在windows环境安装Redis 第一步: 下载windows版本的Redis:https://github.com/MSOpenTech/Redis. 第二步: 在命令行执行:D:\r ...

  5. ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Windows 环境配置 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Windows 环境配置 ASP.NET Core ...

  6. 在windows下面配置redis集群遇到的一些坑

    最近工作不忙,就决定学习一下redis.因为一直在windows下工作,不会linux,没办法就选择在windows下配置redis. windows下配置redis集群的文章有很多,比如:http: ...

  7. Centos7 Openstack - (第一节)基本环境配置

    Centos7 install Openstack - (第一节)基本环境配置 我的blog地址:http://www.cnblogs.com/caoguo 根据openstack官方文档配置 官方文 ...

  8. Redis学习——Windows环境下Redis的安装(二)

    一.说明 之前介绍了Linux环境下Redis的安装,这次介绍一下Windows环境下Redis的安装,首先要讲的是,Redis官方只支持Linux,还好 Microsoft Open Tech gr ...

  9. Windows 环境搭建Redis集群(win 64位)

    转: http://blog.csdn.net/zsg88/article/details/73715947 参考:https://www.cnblogs.com/tommy-huang/p/6240 ...

随机推荐

  1. 基于C语言文件操作的学生成绩管理系统

    原理 在一个班级学生成绩管理系统中,希望处理每个学生的学习情况信息,其中包括学生的学号.姓名.各科名称和成绩等并能使管理人员通过界面完成对学生信息的录入及对学生信息的录入及对数据的查找.浏览.插入.排 ...

  2. C# 强行锁定 第三方 外部 应用程序窗体窗口的分辨率尺寸大小 禁止鼠标拖拽改变窗口大小

    我们也许会有一些奇怪的需求,比如说禁止一个外部程序的窗口大小更改. 如果我们没法修改外部程序的代码,那要怎么做呢? 当然,我们可以通过DLL注入目标程序的方式去Hook或registry一个事件来检测 ...

  3. 6, java数据结构和算法: 栈的应用, 逆波兰计算器, 中缀表达式--> 后缀表达式

    直接上代码: public class PolandCalculator { //栈的应用:波兰计算器: 即: 输入一个字符串,来计算结果, 比如 1+((2+3)×4)-5 结果为16 public ...

  4. 用 Flutter 和 Firebase 轻松构建 Web 应用

    作者 / Very Good Ventures Team 我们 (Very Good Ventures 团队) 与 Google 合作,在今年的 Google I/O 大会上推出了 照相亭互动体验 ( ...

  5. PTA题目集7-9总结

    PTA题目集7-9总结 一.前言 题目集七:该题集为轮到图形卡片排序游戏题,主要考查的知识点有类的继承,ArrayList泛型的使用,Compabale接口的运用,多态的使用方法以及接口的应用,难度较 ...

  6. 聚类算法K-Means算法和Mean Shift算法介绍及实现

    Question:什么是聚类算法 1.聚类算法是一种非监督学习算法 2.聚类是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法 3.理论上,相同的组的数据之间有相同的属性或者是特征,不 ...

  7. 你能说出多线程中sleep、yield、join的用法及sleep与wait区别?

    Object中的wait.notify.notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁( ...

  8. JAVA并行程序基础二

    JAVA并行程序基础二 线程组 当一个系统中,如果线程较多并且功能分配比较明确,可以将相同功能的线程放入同一个线程组里. activeCount()可获得活动线程的总数,由于线程是动态的只能获取一个估 ...

  9. 一文说透 Go 语言 HTTP 标准库

    本篇文章来分析一下 Go 语言 HTTP 标准库是如何实现的. 转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com/archives/561 ...

  10. 【原创】Ingress-Nginx-Controller的Metrics监控源码改造简析

    一.背景 目前我们的生产环境一层Nginx已经容器化部署,但是监控并不完善,我们期望其具有Ingress-Nginx-Controller组件上报监控的数据.这样可以建立请求全链路的监控大盘.有利于监 ...