Redisサーバーに接続するためのJavaクライアントとしてJedisを使用しています。
質問1:オブジェクトを取得/設定するメソッドがないようです<? Serializableを拡張>?すべての値はStringまたはbyte []である必要がありますか?
「JRedis」やSpymemcache(memcachedサーバー用)などの他のクライアントも可能です。
質問2: ShardedJedisを使用すると、認証/パスワードを設定できませんか? Jedisクラスはできますが(auth(String password)を使用)。
質問1について:JedisはPOJOを処理しません。文字列またはbyte []にシリアル化し、jedisを使用してこれを行う必要がありますが、すべてのRedisを使用できるわけではないため、シリアル化されたJavaオブジェクトを保存することはお勧めしません。クールな機能。別のアプローチは、 JOhm のようなオブジェクトハッシュマッパーのようなものを使用することです。
質問2について:ShardedJedisは、単一のキーで実行されるコマンドのみをサポートします。これは原子性を保証するためです。特定のredisで特定のコマンドを実行する場合は、shardedJedis.getShard('someky')
を使用する必要があります。これにより、使用できるJedis
インスタンスが返されます。これを処理する別の方法、推奨される方法は、JedisShardInfo
インスタンスでパスワードを指定することです。 tests でこの例を見ることができます。
質問1への回答:
Redisson (Java用のRedisベースのフレームワーク)はPOJOオブジェクトを処理できます。また、オブジェクトを毎回自分でシリアル化/逆シリアル化し、接続を操作する(取得/解放する)必要はありません。それはすべてRedissonによって行われます。
次に例を示します。
RBucket<AnyObject> bucket = redisson.getBucket("anyObject");
// set an object
bucket.set(new AnyObject());
// get an object
AnyObject myObject = bucket.get();
または、 LiveObjectService を使用できます。
Redissonは、Jackson JSON
、Avro
、Smile
、CBOR
、MsgPack
、Kryo
、FST
、LZ4
、Snappy
、およびJDK Serialization
。