危険なほどのスピードで動くという Redis を Rails から触ってみます。
MaxOSX 10.10 (Yosemite) です。
導入
インストール
brewで入れます。
brew install redis
自動起動
cp /usr/local/Cellar/redis/2.8.17/homebrew.mxcl.redis.plist ~/Library/LaunchAgents/
launchctl load -w ~/Library/LaunchAgents/homebrew.mxcl.redis.plist
~/Library/LaunchAgents/
が無い人は mkdir
で作成してください。
設定ファイル
/usr/local/etc/redis.conf
にあります。今回はこのまま。
ログファイル
/usr/local/var/log/redis.log
起動確認
クライアントを起動
redis-cli
127.0.0.1:6379> set hoge fuga
OK
127.0.0.1:6379>
127.0.0.1:6379> get hoge
"fuga"
Rails
gem 'redis-objects'
bundle
config/initializers/redis.rb
Redis.current = Redis.new(:host => '127.0.0.1', :port => 6379)
簡単なモデルを書いてみる
hoge.rb
class Hoge < ActiveRecord::Base
include Redis::Objects
list :list_value
hash_key :hash_value
end
Hoge#list_value
と Hoge#hash_value
が Redis
で扱えるようになります。
ハマったところ
hoge = Hoge.new
hoge.list_value << 1
hoge.save
はダメで、
hoge = Hoge.new
hoge.save
hoge.list_value << 1
は OK でした。save してから触りましょう。