redis 如何只更新 list中某一个属性的值,怎么存比较合理?
id:100,
name: "xxx",
num: 0
redis中存了这样的一个list
我的需求是这个list其他属性不会变动,半个月左右会新增一条记录,但是num需要频繁更新。
我想要实现类似于mysql中 update xxx set num = xx where id = 100,这种效果。
怎么存比较合理?应该用哪种结构?
最多投票最新 0
kakai
2020/03/30 20:14
用hash结构,别用list,明显你这个id可以作为hash key
快乐的一只小青蛙 2020/03/30 21:26这样的需求确实不适合使用list, 比较适合使用hash, 只更新一个字段时候使用hset key field value的方式来更新而不影响key对应的其他field(相关于sql中的column)
开源中国首席路人王 2020/03/30 21:47您好,只更新一个字段不行吧,list只能整体替换
山下农-山上仙 2020/03/31 08:53用hash吧
如果你还想用保存 name 和num
key ${id}_num ${num}
key ${id}_name ${name}
这样即保存了num 又保存了 name
天上白云 2020/03/31 08:53你用 redis 要用nosql思路,如果还用sql思路去解决就是进入误区了
宿命 2020/03/31 09:58{ data: [ 100,101 ], 100: { name: "xxx", num: 0 }, 101: { name: "xxx", num: 0 } }
freezingsky 2020/03/31 12:10思维方向有误,请基于数据驱动设计。
举报 转 https://www.oschina.net/question/2427327_2315597