JedisCluster連線redis叢集(有密碼)
阿新 • • 發佈:2018-12-25
redis叢集是通過redis-trib.rb方式構建,在連線之前需要匯入Jedis包
1.配置檔案
###############################redis資料庫的相關配置##################################
##訪問密碼
redis.auth = yangfuren
##控制一個pool最多可以有多少個狀態為Idle(空)的jedis例項預設值為8
redis.maxIdle = 200
##可用的最大連線例項數 預設為8
redis.maxActive = 1024
##等待可用連線的最大時間單位為毫秒 預設為-1表示永不超時,一旦超過等待時間則直接丟擲
redis.maxWait = 10000
redis.timeOut = 10000
##設定為true則會在borrow一個jedis例項時,提前做validate操作
redis.testOnBorrow =true
##連線最小空閒時間(毫秒)
redis.minEvictableIdleTimeMillis=1800000
##釋放連線的掃描間隔(毫秒)
redis.timeBetweenEvictionRunsMillis=30000
##每次釋放連線的最大數目
redis.numTestsPerEvictionRun=1024
##最大連線數
redis.maxTotal=30
##在空閒時檢查有效性, 預設false
redis.testWhileIdle=true
##連線耗盡時是否阻塞, false報異常,ture阻塞直到超時, 預設true
redis.blockWhenExhausted=false
redis.sockettimeout=1000
redis.maxAttempts=1000
#叢集
cluster.host1=ip
cluster.port1=6380
cluster.port2=6381
cluster.port3=6382
cluster.port4=6383
cluster.port5=6384
cluster.port6=6385
spring的application.xml中配置
<!-- redis連線池配置 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<!-- 最大連線數 -->
<property name="maxTotal" value="${redis.maxTotal}"/>
<!-- 最大空閒連線數 -->
<property name="maxIdle" value="${redis.maxIdle}"/>
<!-- 每次釋放連線的最大數目 -->
<property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}"/>
<!-- 釋放連線的掃描間隔(毫秒) -->
<property name="timeBetweenEvictionRunsMillis" value="${redis.timeBetweenEvictionRunsMillis}"/>
<!-- 連線最小空閒時間 -->
<property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}"/>
<!-- 連線空閒多久後釋放, 當空閒時間>該值且空閒連線>最大空閒連線數時直接釋放 -->
<property name="softMinEvictableIdleTimeMillis" value="10000"/>
<!-- 獲取連線時的最大等待毫秒數,小於零:阻塞不確定的時間,預設-1 -->
<property name="maxWaitMillis" value="${redis.maxWait}"/>
<!-- 在獲取連線的時候檢查有效性, 預設false -->
<property name="testOnBorrow" value="${redis.testOnBorrow}"/>
<!-- 在空閒時檢查有效性, 預設false -->
<property name="testWhileIdle" value="${redis.testWhileIdle}"/>
<!-- 連線耗盡時是否阻塞, false報異常,ture阻塞直到超時, 預設true -->
<property name="blockWhenExhausted" value="${redis.blockWhenExhausted}"/>
</bean>
<!-- redis單機通過連線池
<bean id="jedisPool" class="redis.clients.jedis.JedisPool"
destroy-method="close">
<constructor-arg index="0" ref="jedisPoolConfig"/>
<constructor-arg index="1" value="${redis.addr}"/>
<constructor-arg index="2" value="${redis.port}" type="int"/>
<constructor-arg index="3" value="${redis.timeOut}" type="int"/>
<constructor-arg index="4" value="${redis.auth}"/>
</bean>
-->
<!-- redis叢集 -->
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
<constructor-arg index="0">
<set>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="${cluster.host1}"></constructor-arg>
<constructor-arg index="1" value="${cluster.port1}"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="${cluster.host1}"></constructor-arg>
<constructor-arg index="1" value="${cluster.port2}"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="${cluster.host1}"></constructor-arg>
<constructor-arg index="1" value="${cluster.port3}"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="${cluster.host1}"></constructor-arg>
<constructor-arg index="1" value="${cluster.port4}"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="${cluster.host1}"></constructor-arg>
<constructor-arg index="1" value="${cluster.port5}"></constructor-arg>
</bean>
<bean class="redis.clients.jedis.HostAndPort">
<constructor-arg index="0" value="${cluster.host1}"></constructor-arg>
<constructor-arg index="1" value="${cluster.port6}"></constructor-arg>
</bean>
</set>
</constructor-arg>
<constructor-arg index="1" value="${redis.timeOut}"></constructor-arg>
<constructor-arg index="2" value="${redis.sockettimeout}"></constructor-arg>
<constructor-arg index="3" value="${redis.maxAttempts}"></constructor-arg>
<constructor-arg index="4" value="${redis.auth}"></constructor-arg>
<constructor-arg index="5" ref="jedisPoolConfig"></constructor-arg>
</bean>
呼叫時候通過
@Resource
private SimpleRedisCluster simpleRedisCluster;
注入後呼叫即可