Windows下编译安装Redis

news2024/9/23 22:27:37

Windows下安装Redis

    • 1.下载cygwin
    • 2.安装cygwin
    • 3.下载Redis
    • 4.编译Redis
    • 5.运行redis
    • 6.报错:

继上次Windows下安装MySQL后,今天安装Redis发现也复杂许多,github上有几个仓库似乎提供了windows一键安装版,但是到 5.0版本就不更新了……所以Macbook真的好使 o(﹏)o

由于Redis本来就是不支持Windows的,为了安装Redis我们首先需要安装另一个工具:cygwin。这个工具能帮助我们在Windows上运行类UNIX模拟环境。

本文安装环境:Windows11 + redis-6.2.10+ cygwin-x86_64

1.下载cygwin

下载地址:https://cygwin.com/
在这里插入图片描述

2.安装cygwin

双击下载的.exe文件一路next下去就行了。

如果在选择镜像时没有加载出镜像列表,可以输入http://mirrors.aliyun.com/cygwin/,然后点击旁边的Add。

在这里插入图片描述

到 Select Packages 时注意一下,这里我们要额外添加 make,gcc-core,gcc-g++,这三个默认是不安装的,就是其他的都是skip,要安装的随便选择个版本就好

在这里插入图片描述

安装后,桌面上会出现一个快捷方式,双击图标就可以用。如果双击完提示”Windows正在查找mintty”,首先查看安装目录(比如我的就是C:\cygwin64)下的bin包里有没有mintty.exe文件,如果没有就重新安装。如果有查看下快捷键的目标里是不是”C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -“,尤其检查有没有.exe结尾。

在这里插入图片描述

如果后面安装时发现有漏掉的命令没安装也没关系,重新双击.exe文件重新安装一遍就行,上一遍已经安装上的不会丢失,只需要找到你这次想补上的就可以。

后面步骤的所有命令行都在cygwin下运行。

3.下载Redis

下载地址:https://redis.io/download

4.编译Redis

首先将下载的redis进行解压,

然后将里面deps文件夹下的hiredis删掉.从git上重新拉取一个新的(压缩包里的有问题,编译时报错)这个看情况操作,此版本我没有操作未报错,然后操作是在deps文件夹下操作

在cygwin里cd,cd F:/redis/redis-6.2.10/deps

git clone https://github.com/redis/hiredis.git

然后把deps目录下几个文件夹编译一下,在deps下执行

make hiredis jemalloc linenoise lua

然后回到 redis 根目录执行

make && make install

在这里插入图片描述

在这里插入图片描述

5.运行redis

到 src 目录下执行

redis-server

完美运行!

在这里插入图片描述

在这里插入图片描述

6.报错:

debug.c: In function ‘dumpX86Calls’:
debug.c:1767:5: error: unknown type name ‘Dl_info’
     Dl_info info;
     ^~~~~~~
debug.c:1777:13: warning: implicit declaration of function ‘dladdr’; did you mean ‘s_addr’? [-Wimplicit-function-declaration]
         if (dladdr((void*)target, &info) != 0 && info.dli_sname != NULL) {
             ^~~~~~
             s_addr
debug.c:1777:54: error: request for member ‘dli_sname’ in something not a structure or union
         if (dladdr((void*)target, &info) != 0 && info.dli_sname != NULL) {
                                                      ^
debug.c:1779:63: error: request for member ‘dli_sname’ in something not a structure or union
                 printf("Function at 0x%lx is %s\n",target,info.dli_sname);
                                                               ^
debug.c: In function ‘dumpCodeAroundEIP’:
debug.c:1788:5: error: unknown type name ‘Dl_info’
     Dl_info info;
     ^~~~~~~
In file included from debug.c:31:0:
debug.c:1797:17: error: request for member ‘dli_sname’ in something not a structure or union
             info.dli_sname, info.dli_saddr, info.dli_fname, info.dli_fbase,
                 ^
server.h:2761:27: note: in definition of macro ‘serverLog’
         _serverLog(level, __VA_ARGS__);\
                           ^~~~~~~~~~~
debug.c:1797:33: error: request for member ‘dli_saddr’ in something not a structure or union
             info.dli_sname, info.dli_saddr, info.dli_fname, info.dli_fbase,
                                 ^
server.h:2761:27: note: in definition of macro ‘serverLog’
         _serverLog(level, __VA_ARGS__);\
                           ^~~~~~~~~~~
debug.c:1797:49: error: request for member ‘dli_fname’ in something not a structure or union
             info.dli_sname, info.dli_saddr, info.dli_fname, info.dli_fbase,
                                                 ^
server.h:2761:27: note: in definition of macro ‘serverLog’
         _serverLog(level, __VA_ARGS__);\
                           ^~~~~~~~~~~
debug.c:1797:65: error: request for member ‘dli_fbase’ in something not a structure or union
             info.dli_sname, info.dli_saddr, info.dli_fname, info.dli_fbase,
                                                                 ^
server.h:2761:27: note: in definition of macro ‘serverLog’
         _serverLog(level, __VA_ARGS__);\
                           ^~~~~~~~~~~
debug.c:1798:17: error: request for member ‘dli_saddr’ in something not a structure or union
             info.dli_saddr);
                 ^
server.h:2761:27: note: in definition of macro ‘serverLog’
         _serverLog(level, __VA_ARGS__);\
                           ^~~~~~~~~~~
debug.c:1799:44: error: request for member ‘dli_saddr’ in something not a structure or union
         size_t len = (long)eip - (long)info.dli_saddr;
                                            ^
debug.c:1805:38: error: request for member ‘dli_saddr’ in something not a structure or union
             void *base = (void *)info.dli_saddr;
                                      ^
make[1]: *** [Makefile:376: debug.o] Error 1
make[1]: Leaving directory '/cygdrive/f/redis/redis-6.2.10/src'
make: *** [Makefile:6: all] Error 2

解决:打开cygwin具体位置(“F:\cygwin\usr\include\dlfcn.h”)

注释两个东西

在这里插入图片描述

在这里插入图片描述

49 //#if __GNU_VISIBLE
61 //#endif

这个在github上有描述:地址

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python机器学习

机器学习可分为两大类,分别为监督学习与非监督学习 监督学习 监督学习是机器学习的类型,其中机器使用“标记好”的训练数据进行训练,并基于该数据,机器预测输出。标记的数据意味着一些输入数据已经用正确的输出标记。 在监督学习…

设计模式之策略模式与责任链模式详解和应用

目录1.策略模式1.1 目标1.2.内容定位1.3.定义1.4.应用场景1.5.促销优惠业务场景1.6 用策略模式实现选择支付方式的业务场景1.7 策略模式在框架源码中的体现1.8 策略模式的优缺点2 责任链模式2.1 责任链楼式的应用场景2.2 利用责任链模式进行数据校验拦截2.3 责任链模式和建造者…

实战打靶集锦-006-Stapler

**写在前面:**记录博主的一次打靶经历。 目录1. 主机发现2. 端口发现3. 服务枚举4. 服务探查4.1 FTP探查4.1.1 匿名登录4.1.2 Elly用户4.1.3 John用户4.1.4 EXP搜索4.2 dnsmasq探查4.2.1 基础信息获取4.2.2 EXP搜索4.3 WEB应用探查4.3.1 浏览器访问4.3.2 目录扫描4.…

Nacos超简单-管理配置文件

优点理论什么的就不说了,按照流程开始配配置吧。登录Centos,启动Naocs,使用sh /data/soft/restart.sh将自动启动Nacos。访问:http://192.168.101.65:8848/nacos/账号密码:nacos/nacos分为两部分,第一部分准…

【RabbitMQ】Windows 安装 RabbitMQ

文章目录工具下载Eralng 安装与配置RabbitMQ 安装工具下载 RabbitMQ 3.7.4版本 网盘链接:https://pan.baidu.com/s/1pO6Q8fUbiMrtclpq2KqVVQ?pwdgf29 提取码:gf29 Eralng 网盘链接:https://pan.baidu.com/s/1irf8fgK77k8T9QzsIRwa7g?pwd9…

广度优先搜索(BFS)-蓝桥杯

一、BFS搜索的原理BFS搜索的原理:“逐层扩散”,从起点出发,按层次从近到远,逐层先后搜索。编码:用队列实现。应用:BFS一般用于求最短路径问题,BFS的特点是逐层搜索,先搜到的层离起点…

Prometheus 记录规则和警报规则

前提环境&#xff1a; Docker环境 涉及参考文档&#xff1a; Prometheus 录制规则Prometheus 警报规则 语法检查规则 promtool check rules /path/to/example.rules.yml一&#xff1a;录制规则语法 groups 语法&#xff1a; groups:[ - <rule_group> ]rule_group…

Redis 强化

(Redis入门使用查看)https://blog.csdn.net/weixin_73849581/article/details/128390152?spm1001.2014.3001.5501缓存使用原则什么时候,什么样的数据能够保存在Redis中?1.数据量不能太大2.使用越频繁,Redis保存这个数据越值得3.保存在Redis中的数据一般不会是数据库中频繁修改…

❤️Selenium实战操作,获取图片详解(内附源码)⚡

👋👋最近也是想换壁纸了,所以来一期详细的selenium获取壁纸教程。 公众号:测个der 源码地址:https://gitee.com/qinganan_admin/reptile-case.git 遇事不决就用selenium就对了。 💨💨目标地址:https://desk.zol.com.cn/dongman/ 目标存在地点: 好了解之后,…

GoLang设置gofmt和goimports自动格式化

目录 设置gofmt gofmt介绍 配置gofmt 设置goimports goimports介绍 配置goimports 设置gofmt gofmt介绍 Go语言的开发团队制定了统一的官方代码风格&#xff0c;并且推出了 gofmt 工具&#xff08;gofmt 或 go fmt&#xff09;来帮助开发者格式化他们的代码到统一的风格…

c/c++开发,无可避免的模板编程实践(篇四)

一、容器与模板 前文就说到&#xff0c;标准库基于模板编程&#xff0c;定义了许多容器类以及一系列泛型算法&#xff0c;使程序员可以更简洁、抽象和有效地编写程序。C标准库中有大量的标准容器&#xff0c;这些容器通常包含一组数据或对象的集合&#xff0c;几乎可以和任何类…

剑指 Offer 48. 最长不含重复字符的子字符串

摘要 剑指 Offer 48. 最长不含重复字符的子字符串 一、滑动窗口解析 这样一来&#xff0c;我们就可以使用「滑动窗口」来解决这个问题了&#xff1a; 我们使用两个指针表示字符串中的某个子串&#xff08;或窗口&#xff09;的左右边界&#xff0c;其中左指针代表着上文中枚…

解决Edge浏览器主页被篡改问题,或许可以帮你彻底解决

问题描述&#xff1a; 之前从一个第三方网站下载了一个不知名软件&#xff0c;接着电脑就各种下载360全家桶之类的软件&#xff0c;后来问题解决了&#xff0c;但是还残留了一些问题&#xff0c;前几天发现edge浏览器的主页被改成了360导航&#xff0c;就是那个该死的hao123&a…

TSITDM 的图

TSI (汽轮机监视保护系统) 时域信号的处理 TDM(Turbine Diagnosis Management) 对时域信号进行频域分析 频谱图&#xff08;Frequency Spectrogram Plot&#xff09;&#xff1a; 横轴是频率值&#xff0c;纵轴是振幅(被测信号在该频率下的能量值) 很多的故障都有自己特定的频…

吉林大学软件需求分析与规范(Software Requirements Analysis Specification)

chapter0课程简介&#xff1a;◼ 软件工程专业核心课程之一◼ 软件工程课程体系最前端课程◼ 主要内容&#xff1a;需求的基本概念&#xff0c;需求的分类&#xff0c;需求工程的基本过程&#xff0c;需求获取的方法、步骤、技巧&#xff0c;需求分析和建模技术&#xff0c;需求…

前端PWA渐进式加载技术

1.什么是PWA&#xff1f; 渐进式网络应用&#xff08;PWA&#xff09;是谷歌在2015年底提出的概念。基本上算是web应用程序&#xff0c;但在外观和感觉上与原生app类似。支持PWA的网站可以提供脱机工作、推送通知和设备硬件访问等功能。 2.PWA有那些优点&#xff1f; 更小更…

JVM学习总结,虚拟机性能监控、故障处理工具:jps、jstat、jinfo、jmap、Visual VM、jstack等

上篇&#xff1a;JVM学习总结&#xff0c;全面介绍运行时数据区域、各类垃圾收集器的原理使用、内存分配回收策略 参考资料&#xff1a;《深入理解Java虚拟机》第三版 文章目录三&#xff0c;虚拟机性能监控、故障处理工具1&#xff09;jps&#xff1a;虚拟机进程状况工具2&…

清风1.层次分析法

一.流程1.建立评价体系2.建立判断矩阵2.1 A-C-C矩阵从准则层对目标层的特征向量上看&#xff0c;花费的权重最大算术平均法求权重的结果为&#xff1a;0.26230.47440.05450.09850.1103几何平均法求权重的结果为&#xff1a;0.26360.47730.05310.09880.1072特征值法求权重的结果…

人工智能轨道交通行业周刊-第34期(2023.2.13-2.19)

本期关键词&#xff1a;智慧地铁、枕簧检测选配机器人、智慧工地、接触网检修、工业缺陷检测 1 整理涉及公众号名单 1.1 行业类 RT轨道交通人民铁道世界轨道交通资讯网铁路信号技术交流北京铁路轨道交通网上榜铁路视点ITS World轨道交通联盟VSTR铁路与城市轨道交通RailMetro…

Spring boot整合mongodb

1.下载及说明 下载地址&#xff1a;Try MongoDB Atlas Products | MongoDB 下载之后在mongodb的文件夹中配置data文件用来存放数据。 传统的关系数据库一般由数据库&#xff08;database&#xff09;、表&#xff08;table&#xff09;、记录&#xff08;record&#xff09;…