现在,我正在按如下方式存储用户对象:
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
答案 0 :(得分:0)
两种方式都没有太大的区别。根据你正在做的事情,它主要归结为一个设计决定,尽管你使用的任何一个都应该在整个项目中保持一致,以避免混淆。
以下是方法2的一些优点:
方法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)