gpt4 book ai didi

ruby-on-rails - 在 Rails 5 中使用不同的 redis 存储进行 session 和缓存

转载 作者:可可西里 更新时间:2023-11-01 11:12:37 29 4
gpt4 key购买 nike

我是 Ruby 和 Rails 的新手。我正在使用 Ruby on Rails 5.2 构建一个 Web 应用程序。我已将其配置为使用 redis-cache-store 来管理 View 缓存:

config.cache_store = :redis_cache_store, { driver: :hiredis, namespace: "my-app", compress: true, url: ENV["REDIS_URL"] }

我将我的 session 存储配置为:

Rails.application.config.session_store :cache_store, {
key: "sid",
expire_after: 30.minutes
}

所以在这里我使用 :cache_store 作为我的 session 存储。据我所知,这意味着 View 缓存和 session 数据的条目存储在同一个 Redis 数据库中。

据我了解,如果使用 Rails 5.2,则不再需要 redis-rails gem,因为它内置了对 redis 的支持 - https://github.com/redis-store/redis-rails#a-quick-note-about-rails-52 .因此,我没有使用那个 gem。

有没有办法对 session 使用不同的 Redis 存储,对 View 缓存使用不同的 Redis 存储?

或者我正在尝试做一些在 Rails 领域不寻常的事情?

最佳答案

要单独配置 session 存储以使用 Redis,您需要使用提供 Redis session 存储的 gem:redis-store(注意 redis-activesupport 已弃用,但 redis-actionpack 不是),或 redis-session-store

在使用 :cache_store session 存储时,您不能单独配置 session 存储,因为它将 session 存储在实际缓存中...它不仅仅是“缓存” -like”存储,因此它不能覆盖/与缓存本身有不同的行为。

将 session 内容存储在 cookie 以外的地方是有些不寻常的,现在 session cookie 已加密且防篡改,但这种情况并不罕见。如果您打算这样做,Redis 是一个不错的选择。

关于ruby-on-rails - 在 Rails 5 中使用不同的 redis 存储进行 session 和缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51717865/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com