假设我有个List<User>这样的list,我是直接把list序列化成字符串存进redis更好,还是存user的id集合List<String>然后取出来序列化之后再单个根据id取redis取更好?主要想问哪个效率会更高,还是具体会和多少条数据实体类的属性有关系?
假设我有个List<User>这样的list,我是直接把list序列化成字符串存进redis更好,还是存user的id集合List<String>然后取出来序列化之后再单个根据id取redis取更好?主要想问哪个效率会更高,还是具体会和多少条数据实体类的属性有关系?
看数据量,如果你的List<User> 数据很多,那么得是个大对象,对于redis来说,再加上高QPS,那么redis网卡有影响了,而且如果你的redis部署,落在单个节点上的大对象,分布不均,而且对于单个User对象如果有修改,也是相当不便的,当然如果你没那么大数据,没那么高QPS,修改也很不频繁,直接存就好了。
我个人比较倾向于 存list的id集合,然后pipeline取所有User对象,总共2次IO。
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
如果id取出来还是要走redis查询,那还是存放List<User>吧。存List<String>,然后再去持久化数据库查找会比较好,存List<User>会不会特别占内存