1. 程式人生 > >redis 第 13 篇 jedis連線叢集

redis 第 13 篇 jedis連線叢集

設定防火牆

[[email protected] redis-cluster]# vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 7001 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 7002 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 7003 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 7004 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 7005 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 7006 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 7007 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT

~                                                                                                    

~                                                                                                    

~                                                                                                     

~                                                                                                    

"/etc/sysconfig/iptables" 23L, 1146C 已寫入                                        

[[email protected]  redis-cluster]# service iptables restart

iptables:清除防火牆規則:                                 [確定]

iptables:將鏈設定為政策 ACCEPT:filter                    [確定]

iptables:正在解除安裝模組:                                   [確定]

iptables:應用防火牆規則:                                 [確定]

[[email protected] redis-cluster]#

程式碼

  • 使用spring
  • 配置applicationContext.xml

<!-- 連線池配置 -->

<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">

     <!-- 最大連線數 -->

     <property name="maxTotal" value="30" />

     <!-- 最大空閒連線數 -->

     <property name="maxIdle" value="10" />

     <!-- 每次釋放連線的最大數目 -->

     <property name="numTestsPerEvictionRun" value="1024" />

     <!-- 釋放連線的掃描間隔(毫秒) -->

     <property name="timeBetweenEvictionRunsMillis" value="30000" />

     <!-- 連線最小空閒時間 -->

     <property name="minEvictableIdleTimeMillis" value="1800000" />

     <!-- 連線空閒多久後釋放, 當空閒時間>該值 空閒連線>最大空閒連線數 時直接釋放 -->

     <property name="softMinEvictableIdleTimeMillis" value="10000" />

     <!-- 獲取連線時的最大等待毫秒數,小於零:阻塞不確定的時間,預設-1 -->

     <property name="maxWaitMillis" value="1500" />

     <!-- 在獲取連線的時候檢查有效性, 預設false -->

     <property name="testOnBorrow" value="true" />

     <!-- 在空閒時檢查有效性, 預設false -->

     <property name="testWhileIdle" value="true" />

     <!-- 連線耗盡時是否阻塞, false報異常,ture阻塞直到超時, 預設true -->

     <property name="blockWhenExhausted" value="false" />

</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="192.168.101.3"></constructor-arg>

                   <constructor-arg index="1" value="7001"></constructor-arg>

              </bean>

              <bean class="redis.clients.jedis.HostAndPort">

                   <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

                   <constructor-arg index="1" value="7002"></constructor-arg>

              </bean>

              <bean class="redis.clients.jedis.HostAndPort">

                   <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

                   <constructor-arg index="1" value="7003"></constructor-arg>

              </bean>

              <bean class="redis.clients.jedis.HostAndPort">

                   <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

                   <constructor-arg index="1" value="7004"></constructor-arg>

              </bean>

              <bean class="redis.clients.jedis.HostAndPort">

                   <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

                   <constructor-arg index="1" value="7005"></constructor-arg>

              </bean>

              <bean class="redis.clients.jedis.HostAndPort">

                   <constructor-arg index="0" value="192.168.101.3"></constructor-arg>

                   <constructor-arg index="1" value="7006"></constructor-arg>

              </bean>

         </set>

     </constructor-arg>

     <constructor-arg index="1" ref="jedisPoolConfig"></constructor-arg>

</bean>

 

  • 測試程式碼

private ApplicationContext applicationContext;

     @Before

     public void init() {

         applicationContext = new ClassPathXmlApplicationContext(

                   "classpath:applicationContext.xml");

     }

 

     // redis叢集

     @Test

     public void testJedisCluster() {

         JedisCluster jedisCluster = (JedisCluster) applicationContext

                   .getBean("jedisCluster");

 

         jedisCluster.set("name", "zhangsan");

         String value = jedisCluster.get("name");

         System.out.println(value);

     }