こんにちは。ヤマヤタケシです。
夏ですね!AWSでRedisをRubyから使ってタスクキューにしましょう!
■redisのインストール
$ sudo yum install redis No package redis available. Error: Nothing to do
なにー!ないのか!?
ググる。
なるほどですねー。amazonのデフォルトのリポジトリにはないから別の場所のを指定する。
$ sudo yum --enablerepo=epel install redis Installed: redis.x86_64 0:2.4.10-1.el6
■rubyのredisライブラリをインストール
$ sudo gem install redis Successfully installed redis-3.2.1 Parsing documentation for redis-3.2.1 Done installing documentation for redis after 1 seconds 1 gem installed
お、すっと入った!
■redisの起動
ふふ、serviceコマンドでしょ?
$ service redis start Starting redis-server: runuser: may not be used by non-root users [FAILED]
やはり、root権限が必要なんだね?知ってた。
$ sudo service redis start Starting redis-server: [ OK ]
一応確認だ!
sudo lsof | grep redis (略) redis-ser 3801 redis 4u IPv4 258494 0t0 TCP localhost:6379 (LISTEN) (略)
TCPの6379ポートで待ってろよ!
■redisの自動起動
ふふふ、chkconfigコマンドでしょう?
$ chkconfig --list redis redis 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ニヤリ、デッフォルトは全部offですな。
おもむろにON!
$ sudo chkconfig redis on
確認。
$ chkconfig --list redis redis 0:off 1:off 2:on 3:on 4:on 5:on 6:off
イケそうだ。
■rubyからredisを使おう
require 'redis' class RedisTest def RedisTest.test() str = "" redis = Redis.new redis.set( "foo", "bar" ) puts redis.get( "foo" ) 10.times {|i| redis.rpush("numbers", "number #{i}") } puts redis.llen( "numbers" ) puts redis.lrange( "numbers", -3, -1 ).to_s redis.del( "numbers" ) puts redis.lrange( "numbers", -3, -1 ).to_s end end RedisTest.test();
うむ。実行できた。
$ ruby redis-test.rb bar 10 ["number 7", "number 8", "number 9"] []