この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。
どうもメガネです。
今日は、memcachedをrailsで使用したいと思います。memcachedとは
http://gihyo.jp/dev/feature/01/memcached/0001
今回はcache_fuというpluginsを使用します。
1.memcachedのインストール&起動
# yum install memcached
# /etc/init.d/memcached start
2.memcache-clientのインストール
# gem install memcache-client
3.cache_fuのプラグインの設置
cache_fuのダウンロード後、解凍してvendor/plugins以下に設置
http://github.com/defunkt/cache_fu
4.config/memcached.ymlを作成
内容は以下の通り(適当に変えてください。)
defaults:
ttl: 1800
readonly: false
urlencode: false
c_threshold: 10000
compression: true
debug: false
namespace: sns-decop
session_servers: false
memory: 64
benchmarking: true
raise_errors: false
fast_hash: false
fastest_hash: false
development:
sessions: true
fragments: false
servers: localhost:11211
以上で準備完了。
今回は、Userモデルがあることを仮定して、ユーザ一覧をmemcacheに格納したいと思います。
Userモデルの修正
class User < ActiveRecord::Base
#10分データ保持する
acts_as_cached :ttl => 10.minutes
def self.find_all
# get_cache(“find_all”)にデータがなければ、findしてget_cacheに追加する
users = self.get_cache(“find_all”) do
users = User.find :all
end
end
end
class UsersController < ApplicationController
def index
@users = User.find_all
end
end
上のような感じでデータが取得できます。
便利なのでぜひ使用してみてください。