如何在使用redis-rails宝石时更改Rails上的存储方法。我将缓存存储设置为使用redis,然后如文档所示使用Rails.cache.fetch。它完全按照预期工作,但是当检索键时,输出不是一些容易编辑的格式。使用redis桌面管理器,这里是输出:http://imgur.com/cE1pAy1
(没有敏感信息,随机生成)。有没有办法将其存储为JSON?我的最终目标是能够使用Java连接到redis服务器,并为redis数组中的特定用户更新字段。
下面是我如何使用缓存:
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更喜欢将每个用户存储为一个单独的键?
发布于 2016-07-04 08:00:40
我只是忽略了编组代码。我重新打开了https://github.com/redis-store/redis-store/blob/master/lib/redis/store/marshalling.rb
并将Marshall::dump替换为YAML::dump,以及加载
https://stackoverflow.com/questions/38178647
复制相似问题