Top > 開発ガイド > Rails Plugins > mem_cache_extension
mem_cache_extension
対象バージョン
当ドキュメントはmem_cache_extension-0.2.0向けです。
概要
RailsビルトインのMemCacheStoreの機能を拡張するプラグインです。追加機能は以下の通りです。
- 設定をmemcached.ymlで行うことができる
- memcachedの動作状況確認のためのユーティリティが付属
動作確認環境
- Rails-2.1.0
- Rails-1.2.6 + memcache-client-1.5.0
ダウンロード
- http://rubyforge.org/projects/rubricks/
- svn://dev.rubricks.org/var/svn/rubricks/plugins/mem_cache_extension/trunk/mem_cache_extension/
設定手順
- memcached.ymlファイルの生成
- expires
セッション情報の保存期間を指定します。「s(秒)」「m(分)」「h(時)」「d(日)」を使うことができます。memcachedの仕様により、指定可能な最大期間は'30d'となっています。「0」と指定することで未指定扱いになります。 - options
memcache-clientにそのまま渡されるオプションとなります。詳細はmemcache-clientのドキュメントを参照してください。 - servers
memcachedのサーバを指定します。配列形式で複数指定することが可能です。session: expires: '6h' options: multithread: false namespace: 'rubricks' readonly: false servers: ['localhost:11211']
- expires
- environment.rbの修正
... Rails::Initializer.run do |config| ... config.action_controller.session_store = :mem_cache_store end ...
ユーティリティ
memcachedの動作状況を確認するためのユーティリティコマンドを用意しました。
* MemCacheUtil.dump(key)
memcachedの動作状況を標準出力に表示します。
* Args
* key
出力する項目を指定します。指定可能な項目は「:status」「:slabs」「:items」の3つです
* Examples
# ruby script/console
Loading development environment.
>> MemCacheUtil.dump(:status)
[192.168.0.2:11211]
pid 3230
uptime 167095
time 1215991229
version 1.2.5
pointer_size 32
rusage_user 0.100000
rusage_system 0.320000
curr_items 19
total_items 63
bytes 3545
curr_connections 6
total_connections 35
connection_structures 18
cmd_get 73
cmd_set 63
get_hits 45
get_misses 28
evictions 0
bytes_read 18951
bytes_written 60749
limit_maxbytes 67108864
threads 1
replication MASTER
repcached_version 2.0
repcached_qi_free 8192
=> nil
>> MemCacheUtil.dump(:slabs)
[192.168.0.2:11211]
id chunk_size max_age total_pages count full
--------------------------------------------------------------
2 112bytes sec 1 no
5 232bytes 2sec 1 1 no
--------------------------------------------------------------
=> nil
>> MemCacheUtil.dump(:items)
[192.168.0.2:11211]
name_space key size
-------------------------------------------------------------------------------
test session:daceb6b0299fb8df5226537e7042b11e 103bytes
-------------------------------------------------------------------------------
=> nil
* MemCacheUtil.get(key)
memcachedの動作状況を取得します。
* Args
* key
取得する項目を指定します。指定可能な項目は「:status」「:slabs」「:items」の3つです
