EC2(Amazon Linux AMI)上にRedisをインストールする

EC2のインスタンスは↓のように立てました。 Amazon EC2を使ってみる(http://shinodogg.com/?p=3370) 以前UbuntuにRedisをいれたときは↓のようにやりました。 RedisをインストールしてSET/GETする(http://shinodogg.com/?p=3233)   今回はAmazonLinux上にRedisを入れます。   ダウンロードしてきて

# wget http://redis.googlecode.com/files/redis-2.2.2.tar.gz
--2011-03-16 03:15:25--  http://redis.googlecode.com/files/redis-2.2.2.tar.gz
Resolving redis.googlecode.com... 209.85.175.82
Connecting to redis.googlecode.com|209.85.175.82|:80... connected.
- 略 -

解凍して

# tar zxvf redis-2.2.2.tar.gz
redis-2.2.2/
redis-2.2.2/.gitignore
redis-2.2.2/00-RELEASENOTES
redis-2.2.2/BUGS
redis-2.2.2/CONTRIBUTING
redis-2.2.2/COPYING
- 略 -

make叩きます。

# make
cd src && make all
make[1]: Entering directory `/usr/local/redis-2.2.2/src'
cd ../deps/hiredis && make static ARCH=""
make[2]: Entering directory `/usr/local/redis-2.2.2/deps/hiredis'
cc -c -std=c99 -pedantic -O3 -fPIC -Wall -W -Wwrite-strings    -g -ggdb  net.c
make[2]: cc: Command not found
make[2]: *** [net.o] Error 127
make[2]: Leaving directory `/usr/local/redis-2.2.2/deps/hiredis'
make[1]: *** [dependencies] Error 2
make[1]: Leaving directory `/usr/local/redis-2.2.2/src'
make: *** [all] Error 2

どうもCのコンパイラが入ってないみたいですね。 ↓確かにないです。

# which cc
/usr/bin/which: no cc in (/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/opt/aws/bin)

↓みるとパッケージ管理はyumって事なので、 http://aws.amazon.com/jp/amazon-linux-ami/ yumgcc入れます。

# yum install gcc
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
amzn                                                                                                                                                                                     | 2.1 kB     00:00
Setting up Install Process
- 略 -
Installed:
  gcc.i386 0:4.1.2-48.14.amzn1
 
Dependency Installed:
  cpp.i386 0:4.1.2-48.14.amzn1      glibc-devel.i686 0:2.12-1.2.21.amzn1      glibc-headers.i686 0:2.12-1.2.21.amzn1      kernel-headers.i686 0:2.6.34.7-56.40.amzn1      libgomp.i686 0:4.4.4-5.18.amzn1
 
Complete!

入りました。って事でもっかいmakeです。

# make
cd src && make all
make[1]: Entering directory `/usr/local/redis-2.2.2/src'
- 略 -
make[1]: Leaving directory `/usr/local/redis-2.2.2/src'
# echo $?
0

無事入ったみたいです。 シンボリックリンクでも貼ったりしつつ起動してみます。 (まぁ起動するのにsrc配下にってのもアレですが。)

# /usr/local/redis/src/redis-server /usr/local/redis/redis.conf
[20453] 16 Mar 03:34:50 * Server started, Redis version 2.2.2
[20453] 16 Mar 03:34:50 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
[20453] 16 Mar 03:34:50 * The server is now ready to accept connections on port 6379
[20453] 16 Mar 03:34:50 - 0 clients connected (0 slaves), 539440 bytes in use

別窓立ち上げてSETしてGETしてみます。

$ /usr/local/redis/src/redis-cli
redis> set amazon ec2
OK
redis> get amazon
"ec2"

  ちなみに、ポート番号の設定とか、デーモンにしてプロセス番号をファイルに保持とか、 どのくらいの頻度でファイルに書きだすのか?ってのはredis.confで設定する事になります。 redis.confのコメントは全て英語で記載されていますが、 ↓にて日本語訳を見ることができます。 http://redis.shibu.jp/admin/config.html #といいますか、これからhttp://redis.shibu.jp/を読み込もうと思います。。 #こんなナイスなコンテンツの存在知りませんでした。。  

Redis: the Definitive Guide: Data Modeling, Caching, and Messaging
Salvatore Sanfilippo Ted Nyman Pieter Noordhuis
Oreilly & Associates Inc
売り上げランキング: 118741