• 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.3 (00000000/0) 64bit
      .-`` .-` `.  ` `/    _.,_ ''-._
     (    '      ,       .-`  | `,    )     Running in stand alone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
     |    `-._   `._    /     _.-'    |     PID: 7920
      `-._    `-._  `-./  _.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |           http://redis.io
      `-._    `-._`-.__.-'_.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |
      `-._    `-._`-.__.-'_.-'    _.-'
          `-._    `-.__.-'    _.-'
              `-._        _.-'
                  `-.__.-'
    [7920] 21Dec16:49:07.351 # Server started, Redis version2.8.3
    [7920] 21Dec16:49:07.351 * The serverisnow ready to accept connections on port 6379
    $ redis-server.exe
    8172:C 16 May 17:51:01.316 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
    8172:M 16 May 17:51:01.322 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
    8172:M 16 May 17:51:01.322 # Redis can't set maximum open files to 10032 because of OS error: Too many open files.
    8172:M 16 May 17:51:01.322 # Current maximum open files is 3200. maxclients has been reduced to 3168 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
                    _._
               _.-``__ ''-._
          _.-``    `.  `_.  ''-._           Redis 3.0.1 (00000000/0) 64 bit
      .-`` .-``.  ``/    _.,_ ''-._
     (    '      ,       .-`  | `,    )     Running in standalone mode
     |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
     |    `-._   `._    /     _.-'    |     PID: 8172
      `-._    `-._  `-./  _.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |           http://redis.io`-._    `-._`-.__.-'_.-'    _.-'
     |`-._`-._    `-.__.-'    _.-'_.-'|
     |    `-._`-._        _.-'_.-'    |
      `-._    `-._`-.__.-'_.-'    _.-'
          `-._    `-.__.-'    _.-'`-._        _.-'
                  `-.__.-'
    
    8172:M 16 May 17:51:01.404 # Server started, Redis version 3.0.1
    8172:M 16 May 17:51:01.410 * DB loaded from disk: 0.006 seconds
    8172:M 16 May 17:51:01.410 * The server is now ready to accept connections on port 6379
    

    成功的话可以看到以上信息,可执行下文件默认安装到/usr/local/bin下。

    5. 提取依赖库,使其可以在Cygwin之外运行

    最后,若需要在Cygwin之外运行,还需要拷贝/bin下的cygwin1.dll文件,这里提供一个已打包好的版本(64位,对于32位的朋友只能说sorry了) 猛击:redis-2.8.3-win64.7z | redis-3.0.1-win64.7z

     

    http://xxk.b3log.org/articles/2015/08/21/1440141912836.html

     

    转载 http://my.oschina.net/maxid/blog/1

    http://hacpai.com/article/144014475291886506

     

  • 相关阅读:
    object对象
    addEventListener 和 attachEvent
    BOM常用对象
    动态原型
    鼠标移动图片放大效果(兼容IE8、多图)
    伪元素:before和:after
    javascript/js 判断是否安装flash player插件,提示安装方法。
    Form表单值转换为[{name:'',value}]键值对
    [转][网站、云服务与虚拟机]弄清负载均衡的机制
    C# Lazy Initialization
  • 原文地址:https://www.cnblogs.com/softidea/p/5044058.html
Copyright © 2020-2023  润新知