redis 如何只更新 list中某一个属性的值,怎么存比较合理?
{
id:100,
name: "xxx",
num: 0
}
redis中存了这样的一个list<Object>,我现在是序列化成String存在redis中的。
我的需求是这个list其他属性不会变动,半个月左右会新增一条记录,但是num需要频繁更新。
我想要实现类似于mysql中 update xxx set num = xx where id = 100,这种效果。
怎么存比较合理?应该用哪种结构?
{
id:100,
name: "xxx",
num: 0
}
redis中存了这样的一个list<Object>,我现在是序列化成String存在redis中的。
我的需求是这个list其他属性不会变动,半个月左右会新增一条记录,但是num需要频繁更新。
我想要实现类似于mysql中 update xxx set num = xx where id = 100,这种效果。
怎么存比较合理?应该用哪种结构?
用hash结构,别用list,明显你这个id可以作为hash key
这样的需求确实不适合使用list, 比较适合使用hash, 只更新一个字段时候使用hset key field value的方式来更新而不影响key对应的其他field(相关于sql中的column)
您好,只更新一个字段不行吧,list只能整体替换
用hash吧
如果你还想用保存 name 和num
key ${id}_num ${num}
key ${id}_name ${name}
这样即保存了num 又保存了 name
你用 redis 要用nosql思路,如果还用sql思路去解决就是进入误区了
{ data: [ 100,101 ], 100: { name: "xxx", num: 0 }, 101: { name: "xxx", num: 0 } }
思维方向有误,请基于数据驱动设计。