本篇文章適合redis集群操作。
首先介紹下redis哨兵模式:
https://www.jianshu.com/p/06ab9daf921d 轉一下吧!哈哈哈,大致是什么意思呢。比如說現在有三台redis服務器,我們給它分配三個哨兵,當多數哨兵發現leader掛了的時候,他們會讓小弟上馬作為新的leader,這也是多哨兵模式,項目開發中普遍使用這種。就是一個實現高可用,不易宕機。
代碼中實現主要JedisSentinelPool這個類。其中參數有多種選擇:
參數詳解:
masterName:是redis名字。
set:哨兵模式服務器與端口,“xxx.xx.xx.xx:26379,xxx.xx.xx.xx:26379,xxx.xx.xx.xx:26379”,根據逗號隔開后的set。(必須要是java.util.HashMap)
poolConfig:這個是連接池中的配置,val poolConfig=new JedisPoolConfig(),可有如下配置:
poolConfig.setMaxTotal(250)
poolConfig.setMaxIdle(32)
poolConfig.setTestOnBorrow(false)
poolConfig.setTestOnReturn(false)
poolConfig.setTestWhileIdle(false)
poolConfig.setMinEvictableIdleTimeMillis(60000)
poolConfig.setTimeBetweenEvictionRunsMillis(30000)
poolConfig.setNumTestsPerEvictionRun(-1)
timeout:超時時長
auth:密碼
dbNum:訪問的是幾庫
獲取redis客戶端:new JedisSentinelPool(masterName,set,poolConfig,timeout,auth,dbNum)
其中參數配置可根據實際需求自由搭配。
依賴導入:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</dependency>