频繁读操作用 String。频繁写入用 Hash

Redis存储的java对象们一般用String或者Hash都可以进行存储,到底在什么时候使用String?什么时候使用hash呢?

String 的存储场景应用在频繁读操作,他的存储结构是json字符串。即把java对象转换为json。然后存入redis中。

Hash 的存储场景应用在频繁写的操作。即。当对象的某个属性频繁修改时,不适合用JSON+String的方式进行存储,因为不灵活,每次修改都要把整个对象转成JSON在进行存储。如果采用hash,就可以针对某个属性进行针对性的单独修改。不用序列化去修改整个对象,比如:产品的库存,架构、浏览数、关注数、评论数、点赞数等在开发中可能经常变动,这个时候就可以使用hash来存储要更优越string。

并且,string类型不太好涨值,hash好操作点,可以对莫格属性单独修改

Untitled

结论:频繁读操作用string。频繁写入用hash

从源码分析

进入redistemplate里面查看

Untitled

Untitled

大部分reids的数据类型都是最开始就定义好的了,但是hash是每一次都会新new出来一个,保证了线程的安全,适合操作写的操作

参考