当前位置: 首页 > news >正文

Windows Cygwin Redis 安装(转)

在win平台下编译Redis一般有两种方式:

1. 基于MS VC进行编译,生成原生可执行文件

该方式需要创建MSVC项目文件以及对Redis源码进行适当调整。 这里提供一个可行版本,由微软开放团队进行维护,目前版本是Redis 2.6, 有MS VC的朋友可以尝试一下: 猛击:https://github.com/MSOpenTech/redis

2. 基于Cygwin进行编译

Cygwin是运行在windows平台上的POSIX系统(例如unix,linux,bsd)模拟环境,为我们提供编译环境。

本文将以Cygwin方式进行Redis最新版本的编译,即2.8.3版,这里先说明一下编译环境:

Windows 7 64位 + Cygwin 64位(已安装好gcc 4.8.1 及 make环境)

下面进行详细描述:

1. 安装Cygwin(需要4~6G disk space)

其安装过程时间会较长,大家可以先去干一些喜欢做的事情,安装过程就省略了

2. 运行Cygwin,检查编辑译环境

$ gcc -v
...
Target: x86_64-pc-cygwin ... Thread model: posix gcc version 4.8.1 (GCC) $ make -v GNU Make 4.0 Built for x86_64-pc-cygwin ... 

3. 下载Redis,对Redis进行适当修改

下载:

$ wget http://download.redis.io/releases/redis-2.8.3.tar.gz
$ tar -zxvf redis-2.8.3.tar.gz $ cd redis-2.8.3 

若要顺利编译,需要对redis.h进行修改:

$ vi src/redis.h

在第一个#define前增加以下代码,解决"debug.c: 790:37: error: 'SA_ONSTACK' undeclared (first use in this function)"错误

/* Cygwin Fix */   
#ifdef __CYGWIN__ #ifndef SA_ONSTACK #define SA_ONSTACK 0x08000000 #endif #endif 

注:redis-2.8.3只需要进行上述修改即可顺利编译, redis-3.0.1 需要更新net.c文件,如下:

vi /deps/hiredis/net.c

在 #include "sds.h"后增加以下代码

/* Cygwin Fix */   
#ifdef __CYGWIN__ #define TCP_KEEPCNT 8 #define TCP_KEEPINTVL 150 #define TCP_KEEPIDLE 14400 #endif 

4. 编译与运行

先编译依赖包

$ cd deps
$ make lua hiredis linenoise $ cd .. 

然后编译主项目

$ make && make install ... $ redis-server [7920] 21Dec16:49:07.336 # Warning: no config file specified, using the default config. Inorderto specify a config file use redis-server /path/to/redis.conf [7920] 21Dec16:49:07.338 # Unable toset the maxnumberof files limitto10032 (Too many open files), setting the max clients configuration to3088. _._ _.-``__ ''-._ _.-```. `_. ''-._ Redis 2.8

转载于:https://www.cnblogs.com/softidea/p/5044058.html

相关文章:

  • apche commons项目简介
  • CAS (2) —— Mac下配置CAS到Tomcat(客户端)
  • Median of Two Sorted Arrays
  • 固态硬盘上安装Windows8(ghost)启动问题
  • 王家林每日大数据语录Spark篇0003
  • [hive小技巧]同一份数据多种处理
  • 【191】◀▶ Powershell 命令集 Cmdlets
  • Github访问慢解决办法
  • ActionContext 中的数据详解
  • SpringMVC格式总结
  • QT内使用OpenCV
  • FRC与tableview的联合使用
  • Sublime Text 3安装与使用
  • 解放全天下开发者
  • Cesium 获取当前视图范围
  • [Vue CLI 3] 配置解析之 css.extract
  • 【技术性】Search知识
  • CentOS7 安装JDK
  • centos安装java运行环境jdk+tomcat
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Linux快速复制或删除大量小文件
  • magento 货币换算
  • Redis在Web项目中的应用与实践
  • ubuntu 下nginx安装 并支持https协议
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 反思总结然后整装待发
  • 关于使用markdown的方法(引自CSDN教程)
  • 全栈开发——Linux
  • 学习笔记TF060:图像语音结合,看图说话
  • 一个SAP顾问在美国的这些年
  • 怎么将电脑中的声音录制成WAV格式
  • 06-01 点餐小程序前台界面搭建
  • Semaphore
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • # .NET Framework中使用命名管道进行进程间通信
  • #1014 : Trie树
  • #git 撤消对文件的更改
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • $forceUpdate()函数
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (笔试题)分解质因式
  • (二)c52学习之旅-简单了解单片机
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)Sql Server 保留几位小数的两种做法
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .NET Core 成都线下面基会拉开序幕
  • .net core 依赖注入的基本用发
  • .NET Core中Emit的使用
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET开发不可不知、不可不用的辅助类(一)
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • .Net中wcf服务生成及调用
  • :中兴通讯为何成功