使用Heroku Redis作为Rails的会话存储

请提供下列内容的中文本机翻译只需要提供一个选项:

    • Heroku Redis – Add-ons – Heroku Elements

 

    Heroku Redis | Heroku Dev Center

使用 Heroku 命令行界面添加附加组件。

使用 Heroku CLI 添加 Heroku Redis 插件。

$ heroku addons:create heroku-redis:hobby-dev 

Creating heroku-redis:hobby-dev on ⬢ xxxxx... free
Your add-on should be available in a few minutes.
! WARNING: Data stored in hobby plans on Heroku Redis are not persisted.
redis-xxxxx-xxxxx is being created in the background. The app will restart when complete...
Use heroku addons:info redis-xxxxx-xxxxx to check creation progress
Use heroku addons:docs heroku-redis to view documentation

请确认 Heroku CLI 中是否已添加环境变量 REDIS_URL(Redis 终端点)。

$ heroku config

=== shakestagram Config Vars
...
REDIS_URL: redis://xxxxx@xxxxx:xxxxx
...

2. 配置 Rails 中的会话存储。

在Gemfile中引入redis-rails。

# Gemfile
gem 'redis-rails'

将Redis的端点设置为从环境变量REDIS_URL获取。

# config/initializers/session_store.rb
if Rails.env.production?

  # Production では session_store に Redis を利用する
  Rails.application.config.session_store :redis_store, {
    servers: ENV['REDIS_URL'],
    expire_after: 1.week
  }

else
  # Production以外 では session_store に cookie_store(default) を利用する
  Rails.application.config.session_store :cookie_store, expire_after: 1.week

end
广告
将在 10 秒后关闭
bannerAds