LoginSignup
2
2

More than 5 years have passed since last update.

Rack::CacheでMemcachedのSASL認証を使う

Last updated at Posted at 2013-01-07

SqaleではMemcachedが使えるのですが、SASL認証が必要なので、単にURIを設定するだけでは動きません。
Rack::CacheのストレージにMemcachedを使おうとすると、READMEなどを読んだだけではやり方が分からなかったのでメモ。

1. Memcachedの起動&設定確認

Memcachedの起動とホストなどの設定確認は公式サイトを見てください。

2. 設定を.envに書く

上で確認した設定を.envに書いてコミットします。

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

3. 必要なRubyGemsをバンドルする

Gemfileに追記します。

Gemfile
gem 'dalli'
gem 'rack-cache'

4. config.ruRack::Cacheの設定をする

config.ruRack::Cacheを使いたいアプリケーションのところで設定をします。

config.ru
# :
# :
# :
require 'dalli'
require 'rack-cache'
# :
# :
# :
map "#{base_dir}/recent.atom" do
    memcached_stem = "memcached://#{ENV['MEMCACHE_SERVERS']}:#{ENV['MEMCACHE_PORT']}"
    memcached_query = "username=#{ENV['MEMCACHE_USERNAME']};password=#{ENV['MEMCACHE_PASSWORD']}"
    use Rack::Cache,
        :verbose => true,
        :metastore => "#{memcached_stem}/meta?#{memcached_query}",
        :entitystore => "#{memcached_stem}/body?#{memcached_query}"
    run TDiary::Feed.new('atom')
end

これでRack::Cacheが使えるはずです。
ポイントは、usernameなどのパラメーターを、URIのクエリーパラメーターとして渡すところですね。Rack::Cacheのソースのコメントに書いてありました。

2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2