Sqale で Memcached を利用する方法

Sqale ではアプリケーションごとに独立した Memcached を利用することができます。 このマニュアルでは Memcached の利用方法について説明します。

Memcached の利用を開始するには

Memcached の利用を開始するには、ダッシュボードから Memcached の初期設定を行う必要があります。

Memcached を利用したいアプリケーションの詳細ページを開き、「Memcachedの設定」で「設定する」をクリックしてください。

Memcachedの設定「設定する」をクリック

Memcached の接続情報や認証情報を確認するには

アプリケーションから Memcached を利用する際に必要となる接続情報や SASL 認証を行うための認証情報はダッシュボードから確認できます。

Memcached を設定しているアプリケーションの詳細ページを開き、「Memcachedの設定」で「Memcached接続情報」をクリックしてください。

Memcachedの設定「Memcached接続情報」

Memcached の接続情報や認証情報が表示されますので、設定ファイルにコピーするなどしてご利用ください。 なお、接続情報は他人に知られないように注意して管理してください。

Rails アプリケーションから Memcached を利用するには

Rails アプリケーションで Memcached を利用する方法について説明します。

Rails アプリケーションのセッションストレージとして Memcached を利用する

Rails アプリケーションは Memcached をセッションストレージとして利用できます。

Rails アプリケーションから Memcached を利用するには Dalli という gem が便利ですので、ここでは Dalli を利用した場合の設定方法について説明します。

Dalli をインストールする

Dalli を利用するために Gemfile を編集します。テキストエディタで Gemfile というファイルを開き、以下の一行を追記して保存します。

gem 'dalli'

ターミナルを開いて bundle install を実行します。実行後は GemfileGemfile.lock の変更を記録します。

$ bundle install
$ git add .
$ git commit -m 'Install dalli'

セッションストレージの設定を編集する

Rails アプリケーションのセッションストレージの設定を変更します。 テキストエディタで config/environments/production.rb というファイルを開き、 config.cache_store の部分を変更します。

変更前

# config.cache_store = :mem_cache_store

変更後

config.cache_store = :dalli_store

Sqale で提供している Memcached は SASL 認証を利用していますので、 Rails アプリケーションから接続するためには認証が必要です。

Dalli は環境変数から Memcached への接続情報や認証情報を取得しますので、 .env ファイルを利用します。 テキストエディタで .env というファイルを作成し、以下のように記述して保存します。

接続情報や認証情報はアプリケーションごとに異なりますので、ダッシュボードで確認して正しい情報を入力してください。

MEMCACHE_SERVERS=memcached001.sqale.lan
MEMCACHE_USERNAME=kyanny-memkun
MEMCACHE_PASSWORD=6b5af17e19f746bdd891bc076bf75ec73dda6a792b61d66a

ターミナルを開いて .env の変更を記録します。

$ git add .env
$ git commit -m 'Add memcached settings to .env'

Rails アプリケーションから直接 Memcached を利用する

Rails アプリケーションから直接 Memcached を利用する方法について説明します。

ここでも Dalli を利用します。 Dalli のインストール方法や .env ファイルへの接続情報の保存については割愛します。

Dalli を利用して Memcached にデータを保存する

dalli_client = Dalli::Client.new
dalli_client.set('key', 'value')

Dalli を利用して Memcached からデータを読み出す

dalli_client = Dalli::Client.new
dalli_client.get('key')