首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改Rails的redis缓存格式?

如何更改Rails的redis缓存格式?
EN

Stack Overflow用户
提问于 2016-07-04 07:01:57
回答 1查看 409关注 0票数 0

如何在使用redis-rails宝石时更改Rails上的存储方法。我将缓存存储设置为使用redis,然后如文档所示使用Rails.cache.fetch。它完全按照预期工作,但是当检索键时,输出不是一些容易编辑的格式。使用redis桌面管理器,这里是输出:http://imgur.com/cE1pAy1

(没有敏感信息,随机生成)。有没有办法将其存储为JSON?我的最终目标是能够使用Java连接到redis服务器,并为redis数组中的特定用户更新字段。

下面是我如何使用缓存:

代码语言:javascript
复制
Rails.cache.fetch("some_key", expires_in: 1.day) do
 User.all.to_a.each do |user|
     user.name = "foobar"
 end

稍后,在Java中,我希望能够连接到Redis,并按ID或其他属性设置一些用户名称。我如何将Redis数据反序列化,或者将其存储在类似JSON的东西中,以方便地解析和更改属性?

编辑好吧,我找到了一种方法来重写redis存储中的编组代码(redis-rails所需的)来使用YAML,我可以反序列化。现在,我的下一个问题是:在Java中将表示用户数组的YAML文件存储到一个键中,然后更新整个yaml文件(只进行一两次增量或递减更改),这是否是对redis的错误使用?

当前的YAML文件是用Java编写的游戏中用户及其死亡和死亡的列表。Java游戏需要经常更新YAML文件中的键,这意味着获取整个YAML文件,解析它,更改值,返回YAML格式,并将其设置为键值。这到底有多低(我应该担心),如果需要,我如何使Rails更喜欢将每个用户存储为一个单独的键?

EN

回答 1

Stack Overflow用户

发布于 2016-07-04 08:00:40

我只是忽略了编组代码。我重新打开了https://github.com/redis-store/redis-store/blob/master/lib/redis/store/marshalling.rb

并将Marshall::dump替换为YAML::dump,以及加载

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38178647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档