spring整合redis集群遇到的問題及MyEclipse下Maven的安裝配置
來源:程序員人生 發布時間:2016-06-06 17:03:56 閱讀次數:2892次
這幾天1直在學習redis集群。然后準備用spring實現redis多機操作,不幸的是,遇到問題好幾天都解決不了,1度想放棄,可是想一想,遇到困難正是學習提高的時候,就決定換種方式去實現多機操作。現在我把遇到問題貼出來:
application-context.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-autowire="byName">
<!-- jedis 連接池配置-->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxActive" value="${redis.pool.maxActive}" />
<property name="maxIdle" value="${redis.pool.maxIdle}" />
<property name="maxWait" value="${redis.pool.maxWait}" />
<property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
</bean>
<bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">
<constructor-arg index="0" ref="jedisPoolConfig"/>
<constructor-arg index="1">
<list>
<bean name="slaver" class="redis.clients.jedis.JedisShardInfo">
<constructor-arg index="0" value="redis.ip"/>
<constructor-arg index="1" value="${redis.port}" type="int"/>
</bean>
<bean name="master" class="redis.clients.jedis.JedisShardInfo">
<constructor-arg index="0" value="redis2.ip"/>
<constructor-arg index="1" value="${redis.port}" type="int"/>
</bean>
</list>
</constructor-arg>
</bean>
<!-- 引入properties配置文件 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:*.properties</value>
<!--要是有多個配置文件,只需在這里繼續添加便可 -->
</list>
</property>
</bean>
</beans>
db.properties(ps:由于家里電腦只安裝1個redis服務,所以此處兩個ip添1樣,為方便測試不再開啟第2個redis服務)
redis.ip=192.168.232.128
redis2.ip=192.168.232.128
#Port
redis.port=6379
#最大分配的對象數
redis.pool.maxActive=1024
#最大能夠保持idel狀態的對象數
redis.pool.maxIdle=200
#當池內沒有返回對象時,最大等待時間
redis.pool.maxWait=1000
#當調用borrow Object方法時,是不是進行有效性檢查
redis.pool.testOnBorrow=true
#當調用return Object方法時,是不是進行有效性檢查
redis.pool.testOnReturn=true
測試代碼:
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
public class Test {
public static void main(String[] args) {
//resources/beans.xml
ShardedJedisPool shardedPool = null;
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:Config.xml");
shardedPool = (ShardedJedisPool)context.getBean("shardedJedisPool");
ShardedJedis client = shardedPool.getResource();
try{
client.set("dddd", "sss");
System.out.println(client.get("dddd"));
}catch(Exception e){
e.printStackTrace();
}finally{
shardedPool.returnResource(client);//must be
}
}
}
<span style="font-size:14px;color:#ff0000;"><strong>測試結果:</strong></span>
<strong><span style="font-size:14px;color:#ff0000;"> </span></strong>
<strong><span style="font-size:14px;color:#ff0000;"> </span></strong>
<strong><span style="font-size:14px;color:#ff0000;"> <img src="http://img.blog.csdn.net/20160601002241745?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span></strong>
<strong><span style="font-size:14px;color:#ff0000;"> </span></strong>
<span style="font-size:14px;color:#ff0000;"><strong>關于這個毛病網上找了好久都沒有找到甚么解決辦法,但是我如果我把db.properties的配置直接寫死在spring bean的屬性里不會報錯,以下:</strong></span>
<img src="http://img.blog.csdn.net/20160601002525692?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /> <span style="font-size:14px;color:#ff0000;"><strong> 測試不會報錯:</strong></span>

我在網上找了很多spring整合redis集群的例子,發現都是用maven去構建的,難道我這樣不用maven去獲得db.properties就會有問題?哎,本人學識少,真的是很無奈啊。既然這樣,我就準備嘗試用maven去構建并實現spring并整合redis的集群。今天先把maven安裝配置好。maven的安裝配置網上很多資料,因我沒用過maven,不過我就重復造輪子安裝配置maven。
<span style="font-size:18px;color:#ff0000;">maven包下載地址:http://maven.apache.org/download.html</span>
<span style="font-size:14px;"><strong> 下載后解壓到D:\maven\apache-maven⑶.3.9-bin,配置maven3的環境變量:先配置M2_HOME的環境變量,新建1個系統變量:M2_HOME , 路徑是:D:\maven\apache-maven⑶.2.1,如圖所示:</strong></span>
<strong><span style="font-size:14px;"></span></strong>
<strong><span style="font-size:14px;"> <img src="http://img.blog.csdn.net/20160601002956350?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></span></strong>
<span style="font-size:14px;"><strong>再配置path環境變量,在path值的末尾添加"%M2_HOME%\bin",以下圖所示;</strong></span>
<strong><span style="font-size:14px;"></span></strong>
<img src="http://img.blog.csdn.net/20160601003048366?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
點擊肯定以后,打開cmd窗口:輸入mvn -version,出現以下內容表示安裝成功。

Maven添加本地倉庫:
打開本地寄存maven目錄 例如:D:\maven\apache-maven⑶.3.9-bin\apache-maven⑶.3.9,打開conf文件夾下的settings.xml文件,找到第53行,把注釋去掉,修改成:<localRepository>E:/mvnRespo</localRepository>
eclipse中的設置:
為Eclipse安裝Maven插件(默許已有,無需安裝)為Eclipse配置MAVEN
從Eclipse的菜單欄點擊Windows-> Preferences -> Maven ->Installations,將之前解壓的maven添加進來,如圖所示

點擊User Settings 使用我們自己的Maven配置,如圖所示

至此,就能夠建maven項目了

maven已搭建好了,等下次抽空用maven構建spring整合redis集群的例子,ok,睡覺!
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈