使用redis缓存对象,该选择json还是序列化呢。
如果对这个对象只有存取的操作,最好使用json。
如果在对象被缓存期间有对属性的操作,比如购物车,可能会更改购买数量,这时候最好使用map,不然你存json需要先取出来再修改再存储,很耗性能。
怎么使用map可以参考楼上的帖子。
还有问答
http://www.oschina.net/question/1458793_2141679
介绍你看我的一篇博客 http://my.oschina.net/yuyidi/blog/499951
当然是json string ,序列化以后的对象,如果源对象的属性有修改,那么反序列化的时候就会报错。
首先Json就序列化的一种,不过是可读的文本不是二进制的。再者这里猜想问题是否是该用redis的hash还是String来存储
json也是序列化的一种嘛。当然也可以选择kyro,protobuf,hessian等。使用这些序列化方式而不是各语言内建的序列化机制的一个好处是,可以支持使用不同的编程语言进行修改或者读取。同时,就java而言,内建的序列化机制在时间和空间上相比json都没有啥优势
如果是数据完全可以使用JSON方式。毕竟redis直接set、get使用起来门槛低很多。redis是没有提供专用的设置对象方法,需要自己进行改写。如果是担心JSON转对象会消耗资源的情况,这个问题需要考量几个地方,第一点:就是使用的JSON转换lib是否就会存在性能问题。第二点:就是数据的数据量级别,如果是存储百万级的大数据对象,建议采用存储序列化对象方式。如果是少量的数据级对象,或者是数据对象字段不多,还是建议采用JSON转换成String方式。毕竟redis对存储字符类型这部分优化的非常好。具体采用的方式与方法,还要看你所使用的场景。
能用JSON就用JSON。可以将JSON转换成String进行存储。
当然序列化好一些,json再转回对象时也是要消耗资源的
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(9)
如果对这个对象只有存取的操作,最好使用json。
如果在对象被缓存期间有对属性的操作,比如购物车,可能会更改购买数量,这时候最好使用map,不然你存json需要先取出来再修改再存储,很耗性能。
怎么使用map可以参考楼上的帖子。
还有问答
http://www.oschina.net/question/1458793_2141679
介绍你看我的一篇博客
http://my.oschina.net/yuyidi/blog/499951
当然是json string ,序列化以后的对象,如果源对象的属性有修改,那么反序列化的时候就会报错。
首先Json就序列化的一种,不过是可读的文本不是二进制的。再者这里猜想问题是否是该用redis的hash还是String来存储
json也是序列化的一种嘛。当然也可以选择kyro,protobuf,hessian等。使用这些序列化方式而不是各语言内建的序列化机制的一个好处是,可以支持使用不同的编程语言进行修改或者读取。同时,就java而言,内建的序列化机制在时间和空间上相比json都没有啥优势
如果是数据完全可以使用JSON方式。毕竟redis直接set、get使用起来门槛低很多。redis是没有提供专用的设置对象方法,需要自己进行改写。如果是担心JSON转对象会消耗资源的情况,这个问题需要考量几个地方,第一点:就是使用的JSON转换lib是否就会存在性能问题。第二点:就是数据的数据量级别,如果是存储百万级的大数据对象,建议采用存储序列化对象方式。如果是少量的数据级对象,或者是数据对象字段不多,还是建议采用JSON转换成String方式。毕竟redis对存储字符类型这部分优化的非常好。具体采用的方式与方法,还要看你所使用的场景。
能用JSON就用JSON。可以将JSON转换成String进行存储。
当然序列化好一些,json再转回对象时也是要消耗资源的