2016-09-19 16 views
2

JedisとJedisClusterは共通のJavaインターフェイスを実装していないことがわかります。私のソフトウェアは、Redisがクラスタモードで動作するかどうかにかかわらず、異なる環境で動作するため、両方の環境で動作するJedisを使用して共通のコードを実装するにはどうすればよいですか?JedisとJedisClusterの共通インターフェイス

クライアントは基本的な操作しか行っていないため、クライアント内のクラスター操作を非表示にして公開しないようにしたいと考えています。モジュラーデザインのアイディア

ありがとうございました。

答えて

1

これはあなたの回答redis.clients.jedis.JedisCommandsのように見えます。

メソッドの引数としてこのインターフェイスを使用し、JedisまたはJedisClusterのインスタンスを渡すことができます。

+1

JedisClusterはJedisClusterを実装しており、JedisCommandsは実装していません。何か不足していますか? –

+0

public class JedisCluster extends BinaryJedisClusterは、JedisCommands、MultiKeyJedisClusterCommands、JedisClusterScriptingCommandsを実装します。 – leonardseymore

+0

バージョン2.9.0で実装されているように見えます。残念ながら、すべてのコマンドがJedisCommandsインターフェースで使用できるわけではありません。たとえば、トランザクションを使用したいと思っていて、JedisClusterで利用できないように見えます。 – leonardseymore

関連する問題