2
我看到Jedis和JedisCluster沒有實現通用的java接口,我想知道爲什麼。我的軟件將在不同的環境中運行,其中redis可能會或可能不會以集羣模式運行,那麼如何使用Jedis實現一個可在兩種環境中運行的常見代碼?Jedis和JedisCluster的通用接口
客戶端將只做基本的操作,我想隱藏庫中的集羣操作,而不是暴露它們。任何關於模塊化設計的想法?
謝謝。
我看到Jedis和JedisCluster沒有實現通用的java接口,我想知道爲什麼。我的軟件將在不同的環境中運行,其中redis可能會或可能不會以集羣模式運行,那麼如何使用Jedis實現一個可在兩種環境中運行的常見代碼?Jedis和JedisCluster的通用接口
客戶端將只做基本的操作,我想隱藏庫中的集羣操作,而不是暴露它們。任何關於模塊化設計的想法?
謝謝。
看起來像這可能是你的答案redis.clients.jedis.JedisCommands
。
您可以將此接口用作您的方法的參數,並傳入Jedis
或JedisCluster
實例。
JedisCluster實現JedisClusterCommands而不是JedisCommands。我錯過了什麼嗎? –
public class JedisCluster extends BinaryJedisCluster implements JedisCommands,MultiKeyJedisClusterCommands,JedisClusterScriptingCommands – leonardseymore
看起來像兩個都在版本2.9.0中實現它。不幸的是,並不是所有的命令都可以在JedisCommands接口中使用。例如,我想使用事務並在JedisCluster中看起來不可用。 – leonardseymore