AWSでredisをrubyから使う

こんにちは。ヤマヤタケシです。
夏ですね!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"]
[]

■参考
redisドキュメント日本語訳
RedisをRubyから触ってみた

コメントを残す

メールアドレスが公開されることはありません。