Can Jedis get/set an Java POJO?

后端 未结 2 1299
陌清茗
陌清茗 2020-12-14 02:32

I\'m using Jedis as the java client to connect to Redis Servers.

Question 1: It seems there is no method to get/set Object < ? extends Serializa

相关标签:
2条回答
  • 2020-12-14 03:16

    Regard Question 1: Jedis won't handle POJOs. You should serialize to a string or byte[] and use jedis to do that, although I won't recommend to store your java objects serialized, as you won't be able to use all Redis cool features. A different approach would be to use something like a object-hash mapper, like JOhm.

    Regard Question 2: ShardedJedis will only support commands that run on a single key. This is to guarantee atomicity. If you want to run a specific command on a specific redis you should use shardedJedis.getShard('someky') which will return a Jedis instance that you can use. Another way to handle this, the recommended one, is to specify your password in the JedisShardInfo instances. You can see and example of this in the tests.

    0 讨论(0)
  • 2020-12-14 03:22

    Answer to question 1:

    Redisson (Redis based framework for Java) can work with POJO objects. And you don't need to serialize/deserialize object by yourself each time and work with connections (acquire/release). It's all done by the Redisson.

    Here is example:

    RBucket<AnyObject> bucket = redisson.getBucket("anyObject");
    // set an object
    bucket.set(new AnyObject());
    // get an object
    AnyObject myObject = bucket.get();
    

    or you can use LiveObjectService.

    Redisson supports many popular codecs like Jackson JSON, Avro, Smile, CBOR, MsgPack, Kryo, FST, LZ4, Snappy and JDK Serialization.

    0 讨论(0)
提交回复
热议问题