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
posted @   dreamw  阅读(1623)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示