首页 > 数据库 >Cygwin工具制作Redis服务端Window版本

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

时间:2023-11-14 15:03:10浏览次数:36  
标签:Redis redis 编译 Window 源码 Cygwin 版本 安装 cygwin



文章目录

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



前言

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

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

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

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


一、cygwin是什么?

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

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

Cygwin工具制作Redis服务端Window版本_缓存_02

二、cygwin安装

下载EXE安装文件

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

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

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

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

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

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

cmakemakegcc-coregcc-g++libgcc1libgccpp1

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

Cygwin工具制作Redis服务端Window版本_数据库_06

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

校验一下cygwin

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

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

Cygwin工具制作Redis服务端Window版本_数据库_08


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都修改一下,如图:

Cygwin工具制作Redis服务端Window版本_缓存_09

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

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

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

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

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

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

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

Cygwin工具制作Redis服务端Window版本_数据库_13


标签:Redis,redis,编译,Window,源码,Cygwin,版本,安装,cygwin
From: https://blog.51cto.com/u_15704340/8369452

相关文章

  • Redis系列之常见数据类型应用场景
    文章目录String简单介绍常见命令应用场景Hash简单介绍常见命令应用场景List简单介绍常见命令应用场景Set简单介绍常见命令应用场景SortedSet(Zset)简单介绍常见命令应用场景Bitmap简单介绍常见命令应用场景附录Redis支持多种数据类型,比如String、hash、list、Set、SortedSet、S......
  • Redis系列之实现分布式自增主键
    软件环境JDK1.8SpringBoot2.2.1Maven3.2+Mysql8.0.26redis6.2.14MybatisPlus3.4.3.4开发工具IntelliJIDEAsmartGit一、实现原理使用Redis来实现分布式的主键自增主要是依赖于Redis的INCR命令,调用INCR命令的对应key,其数值是实现递增加一,所以利用这个性质,将redis独立部署起来......
  • Redission获取Redis时间
    RScriptscript=redissonClient.getScript(StringCodec.INSTANCE);longcurrentTime=script.eval(RScript.Mode.READ_WRITE,"localtime=redis.call('TIME')"+"localmilliseconds=tim......
  • 同一用户名,远程连接Windows Server 2019 时,如何禁止打开新窗口
    同一用户名,远程连接WindowsServer2019时,如何禁止打开新窗口答:您好!如果您想在远程连接WindowsServer2019时禁止打开新窗口,您可以尝试以下方法:使用组策略编辑器:打开组策略编辑器,可以通过运行"gpedit.msc"命令来打开。导航到"计算机配置">"管理模板">"Windows组件">"远......
  • 在 WINDOWS 安装 ACTIVE DIRECTORY 用户和计算机管理单元 (ADUC)
     在WINDOWS安装ACTIVEDIRECTORY用户和计算机管理单元(ADUC)安装官方AD域管理工具(ADUsersandComputers)  一、在WindowsServer里安装AD域管理工具:    1.WindowsServer只需要在角色和功能里,安装Active Directory域服务(ADDS){ActiveDirectoryDomain......
  • redis 类型List增删查改效率
    Redis的List数据类型是一个双向链表,支持在列表的两端进行高效的插入和删除操作。下面是关于RedisList类型的增删查改操作的效率说明:1.增加元素(左侧和右侧添加):左侧添加(LPUSH)和右侧添加(RPUSH)都是O(1)时间复杂度的操作,它们可以在常数时间内完成,不受列表长度的影响。批量添加元素(例......
  • SpringBoot定义拦截器+自定义注解+Redis实现接口防刷(限流)
    实现思路在拦截器Interceptor中拦截请求通过地址+请求uri作为调用者访问接口的区分在Redis中进行计数达到限流目的简单实现定义参数访问周期最大访问次数禁用时长#接口防刷配置,时间单位都是秒.如果second秒内访问次数达到times,就禁用lockTime秒access:lim......
  • windows基本实用命令以及相关炫酷操作
    记录一下windows常用的命令,以及一些炫酷的操作文件操作dir:查看当前目录下的文件,查看隐藏文件dir/atree:使用树形查看当前目录下的文件和文件夹,以及子目录中的文件和文件夹cd目录名:进入指定目录copycon文件名:在屏幕输入内容,最后输入Ctrl+Z,将文件保存到文件名中type......
  • Redis简述|以及它能用于做什么?
    什么是RedisRedis是一种开源的NoSQL内存数据库,用于高性能的数据存储和访问。Redis支持多种数据类型,包括字符串、哈希、列表、集合和有序集合,并且支持分布式存储和操作。Redis的特点包括快速、高可用和易扩展等,适用于各种应用场景。Redis应用场景Redis可以广泛应用于多种场景,包括......
  • 2.3 Windows驱动开发:内核字符串转换方法
    在内核编程中字符串有两种格式ANSI_STRING与UNICODE_STRING,这两种格式是微软推出的安全版本的字符串结构体,也是微软推荐使用的格式,通常情况下ANSI_STRING代表的类型是char*也就是ANSI多字节模式的字符串,而UNICODE_STRING则代表的是wchar*也就是UNCODE类型的字符,如下文章将介绍这......