使用Redis Java客户端Jedis
如何缓存Java对象?
答案 0 :(得分:7)
你应该将你的对象转换为json字符串来存储它,然后读取json并将其转换回你的对象。
你可以使用Gson来实现这一目标。
//store
Gson gson = new Gson();
String json = gson.toJson(myObject);
jedis.set(key,json);
//restore
String json = jedis.get(key);
MyObject object=gson.fromJson(json, MyObject.class);
答案 1 :(得分:3)
您无法将对象直接存储到redis中。因此,将对象转换为String,然后将其放入Redis中。 为此,您的对象必须序列化。将对象转换为ByteArray并使用一些编码算法(ex base64encoding)并将其转换为String然后存储在Redis中。 在检索反向过程时,使用解码算法(例如:base64decoding)将String转换为字节数组,并将其转换为对象。
答案 2 :(得分:3)
我建议使用更方便的lib来执行它:Redisson - 它是基于Redis的Java框架。 它比Jedis有一些优势
Redisson为你做的甚至更多。它支持许多流行的编解码器,如Jackson JSON
,Avro
,Smile
,CBOR
,MsgPack
,Kryo
,FST
,{{ 1}},LZ4
和Snappy
。
JDK Serialization