gpt4 book ai didi

java - 如何更改 Rails redis 缓存格式?

转载 作者:可可西里 更新时间:2023-11-01 11:33:39 25 4
gpt4 key购买 nike

如何在使用 redis-rails gem 时更改 Rails 上的存储方式。我将缓存存储设置为使用 redis,然后按照记录使用 Rails.cache.fetch。它完全按预期工作,但是在检索 key 时,输出不是某种易于编辑的格式。这里使用 redis-desktop-manager 是输出: 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-store 中的编码代码(redis-rails 需要)以使用我可以反序列化的 YAML。现在我的下一个问题是:将代表用户数组的 YAML 文件存储到单个键中,然后更新整个 yaml 文件(仅用于一两个递增或递减更改)是否是对 redis 的错误使用?经常在 Java 中?

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

最佳答案

我刚刚覆盖了编码代码。我重新打开了https://github.com/redis-store/redis-store/blob/master/lib/redis/store/marshalling.rb

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

关于java - 如何更改 Rails redis 缓存格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38178647/

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