在介紹 java api以前咱們先看看redis sentinel客戶端實現的一個原理(4個步驟)java
1.首先要獲取全部sentinel節點的集合,獲取一個可用節點,同時須要一個對應的masterNameredis
2.經過sentinel的一個api:get-master-addr-by-name-masterName(經過名字獲取地址),sentinel會返回master的真正地址和端口api
3.當客戶端獲取到master信息後,會經過role replication來進行一個驗證是不是真正的master節點spa
4.最後一步就是當sentinel感知到master的變化會通知客戶端更換節點,其實內部是用的一個發佈訂閱模式(客戶端訂閱sentinel的某一個頻道,當master發生變化,sentinel向這個頻道publish一條消息,客戶端就能夠獲取再對新的master進行一個鏈接)代理
1.須要一個sentinel地址的集合code
2.須要masterNameget
3.不是代理模式(不是每次都須要去鏈接sentinel節點去獲取master信息,這樣效率不好,而是採用通知的形式)io
//初始化Sentinel鏈接池,注意:這裏名字是JedisSentinelPool只是爲了區分它是sentinel方式鏈接,其內部仍是鏈接master JedisSentinelPool sentinelPool = new JedisSentinelPool(masterName,SentinelSet,poolConfig,timeout); Jedis jedis = null; try{ jedis = sentinelPool.getResource(); //這裏執行jedis command }catch(Exception e){ logger.error(e.getMessage(),e); }finally{ if(jedis != null) //歸還鏈接 jedis.close(); }