cygwinでredis-3.2.5コンパイル
(追記)これを書いたときは知らなかったのですが、Windows用のRedisがあるのでそれを使った方がいいと思います。
RedisをWindowsにインストール - Qiita
ちょっと苦労しました。
このバージョンではhiredisなどが追加されており、まとまった日本語の情報がないので一応書いておきます。
まずcygwinの必要なパッケージが無ければ入れておきます(apt-cygじゃなくてsetup.exeでもおそらく大丈夫)。
(もしapt-cygがいいなら「git clone https://github.com/transcode-open/apt-cyg.git」そしてapt-cygをPATHが通ったところにコピーで。)
apt-cyg install openssh automake gcc-core libevent2.0_5 libevent-devel ncurses libncurses-devel pkg-config make vim git procps emacs util-linux apt-cyg install ruby subversion apt-cyg install libgmp-devel libcrypt-devel curl gem install bundler
まずダウンロード、
wget http://download.redis.io/releases/redis-3.2.5.tar.gz
tar zxf redis-3.2.5.tar.gz
cd redis-3.2.5
関連するヘッダとソースを以下のように修正します
(行番号はコピーしないで下さい。違うバージョンでうまく行かなかった場合はメッセージをよく見て修正して下さい)。
サブディレクトリ内で必要なものはmakeしておく。
(jemallocはうまくいかないので調査中)
grep "Data types" src/* vi src/server.h 453 #ifdef __CYGWIN__ 454 #ifndef SA_ONSTACK 455 #define SA_ONSTACK 0x08000000 456 #endif 457 #endif 458 459 #if defined(__CYGWIN__) 460 #define strtold(a,b) ((long double)strtod((a),(b))) 461 #endif 462 463 /*----------------------------------------------------------------------------- 464 * Data types 465 *----------------------------------------------------------------------------*/ cd deps/ vi hiredis/net.c 52 #include "sds.h" 53 54 /* Cygwin Fix */ 55 #ifdef __CYGWIN__ 56 #define TCP_KEEPCNT 8 57 #define TCP_KEEPINTVL 150 58 #define TCP_KEEPIDLE 14400 59 #endif 60 61 /* Defined in hiredis.c */ # make lua hiredis linenoise geohash-int jemalloc make lua hiredis linenoise geohash-int cd .. make
うまくいったらサーバー起動
find * -name 'redis-server*' ./src/redis-server.exe
別のターミナルでクライアント起動
./src/redis-cli.exe 127.0.0.1:6379> set lesson 1 OK 127.0.0.1:6379> get lesson "1"
警告がけっこう出てましたが、とりあえず使えてますね。
参考:
kakakikikekeのブログ: Cygwin上にRedisをインストール
Build redis-2.8 on Cygwin - Winse Blog (中国語)
(追記)jemallocが無いせいかはわかりませんが、redis-benchmarkなどをすると動作が不安定なことがわかりました。
個人的な趣味以外の使用はお控え下さい。