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

ダウンロード

設定手順

  • 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']
      
  • 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つです