使用jedis如何缓存Java对象

时间:2015-05-15 06:51:09

标签: redis jedis

使用Redis Java客户端Jedis
如何缓存Java对象?

3 个答案:

答案 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有一些优势

  1. 您不需要每次都自行序列化/反序列化对象
  2. 您无需自行管理连接
  3. 您可以异步使用Redis
  4. Redisson为你做的甚至更多。它支持许多流行的编解码器,如Jackson JSONAvroSmileCBORMsgPackKryoFST,{{ 1}},LZ4Snappy

    JDK Serialization