Rails在我的redis缓存中添加额外的行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails在我的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"�

这是什么?

答案

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

在我的情况下,我需要避免它,然后需要在配置中将row设置为true

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

以上是关于Rails在我的redis缓存中添加额外的行的主要内容,如果未能解决你的问题,请参考以下文章

添加额外的 printf 行会影响 C 代码 [关闭]

在类中声明第一个字段属性之前添加额外的行

Rails - 如何在索引控制器方法中使用额外字段渲染json

$redis 全局变量与 ruby​​ on rails

在多线程 Rails 环境中使用 Redis 的最佳方式是啥? (彪马/Sidekiq)

Redis 和 Memcache 还是只是 Redis?