1. 程式人生 > >Redis學習(五) Redis cluster模式詳解

Redis學習(五) Redis cluster模式詳解

一般情況下,使用主從模式加Sentinal監控就可以滿足基本需求了,但是當資料量過大一個主機放不下的時候,就需要對資料進行分割槽,將key按照一定的規則進行計算,並將key對應的value分配到指定的Redis例項上,這樣的模式簡稱Redis叢集。

  Redis分割槽也稱作Redis分片,或者Redis叢集,這都是一個意思。

一、Redis叢集

1.1 Redis叢集的搭建

  叢集方面的教程也是有很多的,找了幾個覺得還不錯的,有需要的可以去看看:

1.2 Redis叢集的不足

  這個還是應該清楚的,看是否滿足你現在的需求。

  • 一般涉及多個key的操作會不支援,取兩個set的並集,且兩個set在不同的Redis例項上面(當然也是能實現的,只是Redis不會直接支援這麼做)。
  • 涉及多個key的事務將不能使用
  • 使用分割槽時,資料處理更加複雜,例如你必須處理多個RDB / AOF檔案,你需要備份你的資料並聚合多個例項和主機的永續性檔案。

二、Redis叢集的Java客戶端訪問

  Redis分割槽後,Java客戶端的訪問也響應的複雜起來,如果使用Jedis的話,那就是先構造一個JedisCluster,然後通過它進行叢集操作:

//使用需要的構造方法構造JedisCluster 
JedisCluster jedisCluster = new JedisCluster();
//JedisCluster 的使用,JedisCluster 具備Redis大多數方法
jedisCluster.set("key", "value");
//使用完後關閉
jedisCluster.close();

 

  Jedis的JedisCluster目前還在開發中,還不成熟,遇到問題了多去Git上反饋,如果能解決,就去Git上貢獻程式碼。