redis 如何只更新 list中某一个属性的值,怎么存比较合理?


{

id:100,

name: "xxx",

num: 0

}

redis中存了这样的一个list<Object>,我现在是序列化成String存在redis中的。

我的需求是这个list其他属性不会变动,半个月左右会新增一条记录,但是num需要频繁更新。

我想要实现类似于mysql中  update xxx set num  = xx where id = 100,这种效果。

怎么存比较合理?应该用哪种结构?

 
 
收藏 (0)
 
0
 
 
kakai
kakai 

用hash结构,别用list,明显你这个id可以作为hash key

 
 
0
 
 
快乐的一只小青蛙
快乐的一只小青蛙 

这样的需求确实不适合使用list, 比较适合使用hash, 只更新一个字段时候使用hset key field value的方式来更新而不影响key对应的其他field(相关于sql中的column)

 
 
0
 
 
开源中国首席路人王
开源中国首席路人王 

您好,只更新一个字段不行吧,list只能整体替换

 
 
0
 
 
山下农-山上仙
山下农-山上仙 

用hash吧

如果你还想用保存 name 和num

key  ${id}_num  ${num}

key  ${id}_name ${name}

这样即保存了num 又保存了 name

 
 
0
 
 
天上白云
天上白云 

你用 redis 要用nosql思路,如果还用sql思路去解决就是进入误区了

 
 
0
 
 
宿命
宿命 

 { data: [ 100,101 ], 100: { name: "xxx", num: 0 }, 101: { name: "xxx", num: 0 } } 

 
 
0
 
 
F
freezingsky 

思维方向有误,请基于数据驱动设计。

 
转 https://www.oschina.net/question/2427327_2315597


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM