我正在尝试Kryo
serlization如何工作。我有一个非常大的HashMap,我想将其推入Redis
。 HashMap是:
HashMap<String, HashMap<String, Set<Long>>> cache = new HashMap<>();
序列化为Redis
的最快方法是什么?
选项1:直接进入Redis?
我看到您可以使用Kryo
之类的:
Kryo kryo = new Kryo();
kryo.register(HashMap.class);
Output output = //For Redis what would the output be ?
kryo. writeObject(output, cache)
但我对使用Output
时Redis
应该是什么感到困惑。
选项2:通过字节数组?
我也看到以下可能:
Jedis jedis = new Jedis("localhost");
Kryo kryo = new Kryo();
kryo.register(HashMap.class);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Output output = new Output(stream);
kryo.writeObject(output, cache);
output.close();
byte[] buffer = stream.toByteArray();
jedis.set("Test", buffer);
但这对我来说似乎效率低下,因为我有效地克隆了#34;我的大缓存变成了一个字节数组。
这个问题的有效方法是什么?