如何在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源代码的注释中有所说明。

广告
将在 10 秒后关闭
bannerAds