RedisクラスタクライアントJava実装の方法は?
JavaでRedisクラスタのクライアントを実装するには、Jedis Clusterライブラリを利用することができます。Jedis ClusterはJedisライブラリの拡張であり、Redisクラスタとのやり取りに特化しています。
Redisクラスタのクライアント実装にJedisクラスタを使用する手順は次のとおりです。
- JedisとJedis Clusterの依存関係を追加
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.7.0</version>
</dependency>
- JedisClusterオブジェクトを作成し、Redisクラスタのノードリストを指定する。
Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("redis-node1", 6379));
nodes.add(new HostAndPort("redis-node2", 6379));
nodes.add(new HostAndPort("redis-node3", 6379));
JedisCluster jedisCluster = new JedisCluster(nodes);
- JedisClusterを使用してRedisを操作する。
String value = jedisCluster.get("key");
jedisCluster.set("key", "value");
注意
- ジェダイ・クラスタは、手動操作なしで、ノードの検出し、フェイルオーバーを自動的に行います。
- ジェダイ・クラスターはコマンドを実行するノードがシャードされています。このため、別のコマンドで同じキーをノードをまたがって操作することができません。
- 全部のRedisコマンドがJedis Clusterプラットフォーム上でサポートされているわけではありません。複雑なコマンドの一部はサポート対象外となっています。
Jedis Cluster以外にも、LettuceやRedissonなど、 Redis クラスタのクライアント機能を実現するJavaライブラリは他にもあります。