使用redis缓存对象,该选择json还是序列化呢。 0 蕃薯哥哥 2016/02/17 19:20 如果对这个对象只有存取的操作,最好使用json。 如果在对象被缓存期间有对属性的操作,比如购物车,可能会更改购买数量,这时候最好使用map,不然你存json需要先取出来再修改再存储,很耗性能。 怎么使用map可以参考楼上的帖子。 评论 (0) 引用此答案 举报 0 盲人摸象 2016/02/17 18:22 还有问答 http://www.oschina.net/question/1458793_2141679 评论 (0) 引用此答案 举报 0 盲人摸象 2016/02/17 18:21 介绍你看我的一篇博客 http://my.oschina.net/yuyidi/blog/499951 评论 (0) 引用此答案 举报 0 薛定谔的大鹿 2016/02/17 18:03 当然是json string ,序列化以后的对象,如果源对象的属性有修改,那么反序列化的时候就会报错。 评论 (0) 引用此答案 举报 0 googlespot 2016/02/17 17:42 首先Json就序列化的一种,不过是可读的文本不是二进制的。再者这里猜想问题是否是该用redis的hash还是String来存储 评论 (0) 引用此答案 举报 0 亭舸翁 2016/02/17 17:37 json也是序列化的一种嘛。当然也可以选择kyro,protobuf,hessian等。使用这些序列化方式而不是各语言内建的序列化机制的一个好处是,可以支持使用不同的编程语言进行修改或者读取。同时,就java而言,内建的序列化机制在时间和空间上相比json都没有啥优势 评论 (0) 引用此答案 举报 0 B boonbai 2016/02/17 17:15 如果是数据完全可以使用JSON方式。毕竟redis直接set、get使用起来门槛低很多。redis是没有提供专用的设置对象方法,需要自己进行改写。如果是担心JSON转对象会消耗资源的情况,这个问题需要考量几个地方,第一点:就是使用的JSON转换lib是否就会存在性能问题。第二点:就是数据的数据量级别,如果是存储百万级的大数据对象,建议采用存储序列化对象方式。如果是少量的数据级对象,或者是数据对象字段不多,还是建议采用JSON转换成String方式。毕竟redis对存储字符类型这部分优化的非常好。具体采用的方式与方法,还要看你所使用的场景。 评论 (0) 引用此答案 举报 0 B boonbai 2016/02/17 17:00 能用JSON就用JSON。可以将JSON转换成String进行存储。 评论 (0) 引用此答案 举报 0 兰儿飞飞 2016/02/17 16:59 当然序列化好一些,json再转回对象时也是要消耗资源的 评论 (0) 引用此答案 举报 转 https://www.oschina.net/question/228694_2151535?sort=time 相关文章: 2021-09-14 2021-06-07 2022-12-23 2021-07-16 2022-03-06 2021-10-25 2021-06-17 2022-12-23