ruby-on-rails - Rails 在我的 redis 缓存中添加额外的行

标签 ruby-on-rails ruby caching redis

我正在使用 redis-rails在我的项目中存储用户的缓存,我不知道为什么在缓存的开头添加了额外的一行。

这是我的配置:

config.cache_store = :redis_store, {
  host: ENV['REDIS_SERVER'] || 'localhost',
  port: 6379,
  db: 0,
  namespace: ENV['CUSTOMER']
}

这是我的代码:

namespace :update_employees_cache do
  desc "Update employees cache"
  task update: :environment do
    employees = []

    Employee.where(active: true).each do |item|
      employees.push({ id: item.id, name: item.name })
    end

    Rails.cache.write "employees", employees.to_json
  end
end

这是结果 Result

在第 1 行,o: ActiveSupport::Cache::Entry: @valueI"�

这是什么?

最佳答案

在项目 repo 中打开一个问题后,我发现 Rails 的默认行为是用该数据包装缓存。

在我的例子中,我需要避免它,然后需要在配置中将 row 设置为 true

config.cache_store = :redis_store, {
  host: ENV['REDIS_SERVER'] || 'localhost',
  port: 6379,
  db: 0,
  namespace: ENV['CUSTOMER'],
  raw: true
}

关于ruby-on-rails - Rails 在我的 redis 缓存中添加额外的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49010253/

相关文章:

ruby-on-rails - 仅在调用某些方法时验证 Rails 模型

ruby-on-rails - 在 http header 中设置身份验证 token

mysql - 我可以使用 Ruby On Rails 连接到 PHPmyadmin 吗?

Ruby:使用 JSON 正文 PUT 请求?

asp.net-mvc - MVC 应用程序缓存和 session 管理器的最佳实践

ruby-on-rails - Gemfile for rails 应用程序中环境的不同 ruby​​ 版本

ruby-on-rails - Rails 4.2 强参数和解析 json put/update 上更改的属性

ruby - 在 Ruby 中通过 using::operator 定义方法是什么意思?

每个实例的 Python LRU 缓存装饰器

ios - 即使在 iphone 中清除缓存后仍将保留的变量值