gpt4 book ai didi

json - 在redis中通过lua脚本编辑json对象

转载 作者:IT王子 更新时间:2023-10-29 06:15:00 28 4
gpt4 key购买 nike

我想在从 Redis 服务器返回之前编辑我的 json 对象, 在我的 Redis 服务器中,我有 4 个键:

user:1 {"Id":"1","Name":"Gholzam","Posts":"[]"}
user:1:post:1 {"PostId":"1","Content":"Test content"}
user:1:post:2 {"PostId":"2","Content":"Test content"}
user:1:post:3 {"PostId":"3","Content":"Test content"}

我想通过 lua 脚本获取上下文,如何? :

{"Id":"1","Name":"Gholzam","Posts":"[{"PostId":"1","Content":"Test
content"},{"PostId":"1","Content":"Test
content"},{"PostId":"1","Content":"Test content"}]}

最佳答案

这里客户的选择在很大程度上是无关紧要的;重要的是:弄清楚数据存储。你说你有 4 个键 - 但我不清楚我们如何知道给定 user:1,这些帖子是什么。常见的方法包括:

  • 有一个名为 user:1:posts集合(或类似的东西),其中包含完整的 key (user:1:post:1 等)或相关键(1 等)
  • 有一个名为user:1:posts(或类似的东西)的散列,其中包含由其 id 键控的帖子

我很想使用后一种方法,因为它更直接 - 所以我可能会:

  • user:1,内容为 {"Id":"1","Name":"Gholzam","Posts":"[]"}
  • user:1:posts,一个包含 3 对的散列:
    • 1,值为{"PostId":"1","Content":"测试内容"}
    • 2,值为{"PostId":"2","Content":"测试内容"}
    • 3,值为{"PostId":"3","Content":"测试内容"}

然后您可以使用hgetallhvals 轻松获取帖子。

第二部分是如何在服务器端操作json。这里的好消息是,redis 通过 cjson 提供了对 lua 内部 json 工具的访问。 .

我既不是cjson专家,也不是lua专家;然而,坦率地说,我的建议是:不要这样做。 IMO,如果你让它专注于它擅长的事情:存储和检索,那么 Redis 的效果最好。您可能可以随心所欲地改变它,但我很想在 Redis 之外 进行任何 json 操作。

关于json - 在redis中通过lua脚本编辑json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25309371/

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