gpt4 book ai didi

redis - 将数据存储为键和哈希对象的属性之间的区别

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

现在,我按如下方式存储用户对象:

user1 = ( id: 1, name: "bob")
user2 = { id: 2, name: "steve"}

HMSET "user:1", user1
HMSET "user:2", user2

HGETALL "user:1" would return the user1 object
HGETALL "user:2" would return the user2 object

我想知道如果我这样做是否会有任何显着差异(性能或其他):

user1 = ( id: 1, name: "bob")
user2 = { id: 2, name: "steve"}

HSET "USER", 1, JSON.stringify(user1)
HSET "USER", 2, JSON.stringify(user2)

HGET "USER", 1 would give me the string representation of user1 object
HGET "USER", 2 woudl give me the string representation of user2 object

最佳答案

两种方式都没有太大区别。它主要归结为基于您正在做的事情的设计决策,尽管无论您使用哪种方式,您都应该在整个项目中保持一致以避免混淆。

以下是方法 2 的一些优点:

  • 使用 JSON 有助于保持类型一致性
  • Redis 将使用更少的内存并且可能会更快一点,因为它不必存储或查找那些额外的键
  • 在代码中可能更容易思考和使用

以下示例总结了方法 2 的主要负面影响。假设您需要更新用户名。以下是每种方法的操作方法。

 // Method 1:
HMSET user:1 name newname

// Method 2:
result = JSON.parse(HGET user 1)
result.name = newname
HSET user 1 JSON.stringify(result)

关于redis - 将数据存储为键和哈希对象的属性之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20428211/

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