Redisの使用Javaクライアント ジェダイ
どうすればJavaオブジェクトをキャッシュできますか?
オブジェクトを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);
オブジェクトを直接redisに保存することはできません。したがって、オブジェクトをStringに変換してから、Redisに配置します。そのためには、オブジェクトをシリアル化する必要があります。オブジェクトをByteArrayに変換し、エンコードアルゴリズム(base64encodingなど)を使用してStringとして変換し、Redisに保存します。プロセスを逆に取得しながら、デコードアルゴリズム(例:base64decoding)を使用して文字列をバイト配列に変換し、オブジェクトに変換します。
これを行うには、より便利なlibを使用することをお勧めします。 Redisson -これはJava用のRedisベースのフレームワークです。ジェダイに比べていくつかの利点があります
Redissonはあなたのためにそしてそれ以上にそれをします。 Jackson JSON
、Avro
、Smile
、CBOR
、MsgPack
、Kryo
、FST
、LZ4
、Snappy
およびJDK Serialization
。
RBucket<AnyObject> bucket = redisson.getBucket("anyObject");
// set an object
bucket.set(new AnyObject());
// get an object
AnyObject myObject = bucket.get();