Cygwin工具制作Redis服务端Window版本

文章目录

  • 前言
  • 一、cygwin是什么?
  • 二、cygwin安装
  • Redis源码编译


前言

在学习到redis,经常需要用到一个redis服务端,如果有买服务器或者本机可以支持经常开虚拟机,也是可以的,如果不具备这些条件,还是本机window系统直接安装一个redis服务端方便。

不过新的版本,在微软维护的redis版本库已经很久没更新了,看了一下,最高版本才3.x

在这里插入图片描述

所以需要自己进行制作window版本的redis服务端,这里介绍一种方法,可以使用cygwin工具来制作EXE文件


一、cygwin是什么?

Cygwin是开源工具的大型集合平台,它提供了可以在window系统运行Linux发行版本的模拟环境,简单来说就是这个工具平台提供了兼容环境,可以将Linux上的应用进行编译,制作,做成可以在window上执行的应用程序。

Cygwin官网:https://www.cygwin.com/

在这里插入图片描述

二、cygwin安装

下载EXE安装文件

在这里插入图片描述

安装的话,基本都是点击下一步就行,有区别的本文才挑出来说,不然这里就可以修改为直接连接

在这里插入图片描述

这里可以选择一个下载站点,可以选择网易的或者阿里云的都可以,本文选择了网易的站点https://mirors.163.com

在这里插入图片描述

这里选择类别,然后需要下载好几个应用,以支持redis源码的编译,需要的软件包有:

cmakemakegcc-coregcc-g++libgcc1libgccpp1

其中,cmakemake用于构建项目;gcc-coregcc-g++用于编译C/C++程序;libgcc1libgccpp1是一些运行库

在这里插入图片描述

都安装好之后,在cygwin64 Terminial上运行一下命令,检验一下cygwin和相关软件包是否都安装成功

校验一下cygwin

在这里插入图片描述

依次校验一下对应的软件包

在这里插入图片描述


Redis源码编译

  • 下载redis源码

    可以去GitHub上下载对应版本的Redis源码,链接:https://github.com/redis/redis/releases,如何将对应的压缩包放在cygwin64\home\${user}下面,然后运行cygwin64 Terminial

  • 解压文件

    tar -xvf redis-6.2.14.tar.gz
    
  • 切换到对应目录

    cd redis-6.2.14
    
  • 编译和安装

    make && make install 
    
    

    编译过程,出现了如下的报错

    debug.c:1759:5: error: unknown type name ‘Dl_info’

需要修改一下源码,找到src目录下面的debug.c文件,加上D1_info结构体,如何下面两个函数dumpX86CallsdumpCodeAroundEIP都修改一下,如图:

在这里插入图片描述

修改完成后,重新编译安装即可,编译和安装都完成之后,在src目录下面会生成如下的exe执行文件

在这里插入图片描述

点击执行,发现会有如下的弹窗提示,这个文件是在cygwin的bin目录下面

在这里插入图片描述

所以将这些文件都复制一份,放在一个新的文件夹下面

在这里插入图片描述

点击reids-server.exe,执行成功,OK,一个window版本的redis服务端就制作好了

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/123605.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

黑客(网络安全)技术——高效自学

前言 前几天发布了一篇 网络安全(黑客)自学 没想到收到了许多人的私信想要学习网安黑客技术!却不知道从哪里开始学起!怎么学 今天给大家分享一下,很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习…

认证服务-SpringSecurity及Oauth2介绍

认证服务-SpringSecurity及Oauth2介绍 统一身份认证服务 统一身份认证服务系统:以统一身份认证服务为核心,用户登录统一身份认证服务后,即可以使用所有支持统一身份认证服务的管理应用系统。 统一认证服务的提供方在项目实施中通常由公司平…

【Linux精讲系列】——vim详解

​作者主页 📚lovewold少个r博客主页 ⚠️本文重点:c入门第一个程序和基本知识讲解 👉【C-C入门系列专栏】:博客文章专栏传送门 😄每日一言:宁静是一片强大而治愈的神奇海洋! 目录 目录 ​作者…

XML解析文档解析

1.首先是我的项目结构以及我所引入的依赖&#xff1a; 2.引入的依赖&#xff1a;jdk用的是17 <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target> </properties> <dep…

【uniapp】通用列表封装组件

uniapp页面一般都会有像以下的列表页面&#xff0c;封装通用组件&#xff0c;提高开发效率&#xff1b; &#xff08;基于uView前端框架&#xff09; 首先&#xff0c;通过设计图来分析一下页面展示和数据结构定义 w-table组件参数说明 参数说明类型可选值默认值toggle列表是…

读者自荐的 4 个 GitHub 项目

本期推荐的 4 个开源项目&#xff0c;为读者在开源项目 Awesome-GitHub-Repo 的评论区自推的, 如果你开源了不错的项目&#xff0c;想让大家看到&#xff0c;也可以去 Awesome-GitHub-Repo 进行投稿。 本期推荐开源项目目录&#xff1a; 1. DB-GPT 2. 定制中国传统节日头像 3. …

零代码编程:用ChatGPT批量将Mp4视频转为Mp3音频

文件夹中有很多mp4视频文件&#xff0c;如何利用ChatGPT来全部转换为mp3音频呢&#xff1f; 在ChatGPT中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个批量将Mp4视频转为Mp3音频的任务&#xff0c;具体步骤如下&#xff1a; 打开文件夹&#xff1a;…

Vue el-table序号与复选框hover切换

效果图下&#xff1a; <template><div class"container"><el-tableref"multipleTable"id"multipleTable":data"person.tableData"cell-mouse-enter"cellEnter"cell-mouse-leave"cellLeave"selecti…

网页【CSS】滚动条

前言 优化后的滚动条会提亮我们的网站页面。 例如&#xff1a;CSS-TRICKS这个网站如果采用的是浏览器默认的滚动条&#xff0c;不进行优化&#xff0c;页面会显得很不搭。 所以该网站的滚动条样式优化如下&#xff1a; html::-webkit-scrollbar {width: 30px;height: 30px; …

Leetcode---370周赛

题目列表 2923. 找到冠军 I 2924. 找到冠军 II 2925. 在树上执行操作以后得到的最大分数 2926. 平衡子序列的最大和 一、找到冠军I 第一题模拟题&#xff0c;简单来说是看每一行(列)是否全是1&#xff0c;当然不包括自己比自己强的情况&#xff0c;需要特判 代码如下 …

支持C#的开源免费、新手友好的数据结构与算法入门教程 - Hello算法

前言 前段时间完成了C#经典十大排序算法&#xff08;完结&#xff09;然后有很多小伙伴问想要系统化的学习数据结构和算法&#xff0c;不知道该怎么入门&#xff0c;有无好的教程推荐的。今天给大家推荐一个支持C#的开源免费、新手友好的数据结构与算法入门教程&#xff1a;He…

STM32Cube +VSCode开发环境搭建

STM32Cube VSCode开发环境搭建 0.前言一、各种方式对比1.STM32CubeMX CLion2.STM32CubeIDE VSCode STM32 VSCode Extension3.VSCode EIDE插件 二、STM32CubeIDE VSCode STM32 VSCode Extension环境搭建1.需要安装的软件2.相关配置3.编译测试 三、总结 0.前言 工欲善其事&…

Qt QtCreator调试Qt源码配置

目录 前言1、编译debug版Qt2、QtCreator配置3、调试测试4、总结 前言 本篇主要介绍了在麒麟V10系统下&#xff0c;如何编译debug版qt&#xff0c;并通过配置QtCreator实现调试Qt源码的目的。通过调试源码&#xff0c;我们可以对Qt框架的运行机制进一步深入了解&#xff0c;同时…

HTML_案例1_注册页面

用纯html页面&#xff0c;不用css画一个注册页面。 最终效果如下&#xff1a; html页面代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册页面</title> </head>…

【Git】Git安装入门使用常用命令Gitee远程仓库上传文件与下载

一&#xff0c;Git入门 1.1 Git是什么 Git是一款分布式版本控制系统&#xff0c;被广泛用于软件开发中的源代码管理。它由Linus Torvalds在2005年创造并发布&#xff0c;旨在解决传统版本控制系统&#xff08;如SVN&#xff09;的一些局限性。主要用于敏捷高效地处理任何或小或…

【解决方案】vue 项目 npm run dev 时报错:‘cross-env‘ 不是内部或外部命令,也不是可运行的程序

报错 cross-env 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! estate1.0.0 dev: cross-env webpack-dev-server --inline --progress --config build/webpack.dev.conf.js npm ERR! Exit status 1 np…

Pytorch 里面torch.no_grad 和model.eval(), model.train() 的作用

torch.no_grad: 影响模型的自微分器&#xff0c;使得其停止工作&#xff1b;这样的话&#xff0c;数据计算的数据就会变快&#xff0c;内存占用也会变小&#xff0c;因为没有了反向梯度计算&#xff0c;当然&#xff0c;我哦们也无法做反向传播。 model.eval() 和model.train()…

Dockerfile搭建lnmp

目录 任务需求&#xff1a; 一、准备&#xff1a; 二、部署nginx容器&#xff08;172.18.0.10&#xff09;&#xff1a; 1.编写Dockerfile构建镜像&#xff1a; 2.准备nginx配置文件&#xff1a; 3.构建镜像&#xff0c;启动nginx容器&#xff1a; 三、部署mysql容器&#x…

Flutter学习:使用CustomPaint绘制路径

Flutter学习&#xff1a;认识CustomPaint组件和Paint对象 Flutter学习&#xff1a;使用CustomPaint绘制路径 Flutter学习&#xff1a;使用CustomPaint绘制图形 Flutter学习&#xff1a;使用CustomPaint绘制文字 Flutter学习&#xff1a;使用CustomPaint绘制图片 drawPath 绘制路…

矢量绘图软件Sketch 99 for mac

Sketch是一款为用户提供设计和创建数字界面的矢量编辑工具。它主要用于UI/UX设计师、产品经理和开发人员&#xff0c;帮助他们快速设计和原型各种应用程序和网站。 Sketch具有简洁直观的界面&#xff0c;以及丰富的功能集&#xff0c;使得用户可以轻松地创建、编辑和共享精美的…