如何在Rack::Cache中使用Memcached的SASL身份验证
在Sqale中,虽然可以使用Memcached,但由于需要SASL认证,仅仅设置URI是无法正常运行的。
当尝试将Memcached用作Rack::Cache的存储时,只读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中添加。
gem 'dalli'
gem 'rack-cache'
在config.ru中进行Rack::Cache的配置设置。
将配置设置放置在需要使用Rack::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。
关键在于将诸如用户名等参数作为URI的查询参数进行传递。这在Rack::Cache源代码的注释中有所说明。