spring整合redis集群遇到的问题及MyEclipse下Maven的安装配置
2016-05-31 23:28
1001 查看
这几天一直在学习redis集群。然后准备用spring实现redis多机操作,不幸的是,遇到问题好几天都解决不了,一度想放弃,可是想想,遇到困难正是学习提高的时候,就决定换种方式去实现多机操作。现在我把遇到问题贴出来:
application-context.xml
db.properties(ps:因为家里电脑只安装一个redis服务,所以此处两个ip添一样,为方便测试不再开启第二个redis服务)
测试代码:
我在网上找了很多spring整合redis集群的例子,发现都是用maven去构建的,难道我这样不用maven去获取db.properties就会有问题?哎,本人学识少,真的是很无奈啊。既然这样,我就准备尝试用maven去构建并实现spring并整合redis的集群。今天先把maven安装配置好。maven的安装配置网上很多资料,因我没用过maven,不过我就重复造轮子安装配置maven。
点击确定之后,打开cmd窗口:输入mvn-version,出现如下内容表示安装成功。
Maven添加本地仓库:
打开本地存放maven目录例如:D:\maven\apache-maven-3.3.9-bin\apache-maven-3.3.9,打开conf文件夹下的settings.xml文件,找到第53行,把注释去掉,修改成:<localRepository>E:/mvnRespo</localRepository>
eclipse中的设置:
为Eclipse安装Maven插件(默认已有,无需安装)为Eclipse配置MAVEN
从Eclipse的菜单栏点击Windows->Preferences->Maven ->Installations,将之前解压的maven添加进来,如图所示
点击UserSettings使用我们自己的Maven配置,如图所示
至此,就可以建maven项目了
maven已经搭建好了,等下次抽空用maven构建spring整合redis集群的例子,ok,睡觉!
application-context.xml
<beansxmlns="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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"default-autowire="byName"> <!--jedis连接池配置--> <beanid="jedisPoolConfig"class="redis.clients.jedis.JedisPoolConfig"> <propertyname="maxActive"value="${redis.pool.maxActive}"/> <propertyname="maxIdle"value="${redis.pool.maxIdle}"/> <propertyname="maxWait"value="${redis.pool.maxWait}"/> <propertyname="testOnBorrow"value="${redis.pool.testOnBorrow}"/> </bean> <beanid="shardedJedisPool"class="redis.clients.jedis.ShardedJedisPool"> <constructor-argindex="0"ref="jedisPoolConfig"/> <constructor-argindex="1"> <list> <beanname="slaver"class="redis.clients.jedis.JedisShardInfo"> <constructor-argindex="0"value="redis.ip"/> <constructor-argindex="1"value="${redis.port}"type="int"/> </bean> <beanname="master"class="redis.clients.jedis.JedisShardInfo"> <constructor-argindex="0"value="redis2.ip"/> <constructor-argindex="1"value="${redis.port}"type="int"/> </bean> </list> </constructor-arg> </bean> <!--引入properties配置文件--> <beanid="propertyConfigurer"class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <propertyname="locations"> <list> <value>classpath:*.properties</value> <!--要是有多个配置文件,只需在这里继续添加即可--> </list> </property> </bean> </beans>
db.properties(ps:因为家里电脑只安装一个redis服务,所以此处两个ip添一样,为方便测试不再开启第二个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 #当调用borrowObject方法时,是否进行有效性检查 redis.pool.testOnBorrow=true #当调用returnObject方法时,是否进行有效性检查 redis.pool.testOnReturn=true
测试代码:
importorg.springframework.context.ApplicationContext; importorg.springframework.context.support.ClassPathXmlApplicationContext; importredis.clients.jedis.ShardedJedis; importredis.clients.jedis.ShardedJedisPool; publicclassTest{ publicstaticvoidmain(String[]args){ //resources/beans.xml ShardedJedisPoolshardedPool=null; ApplicationContextcontext=newClassPathXmlApplicationContext("classpath:Config.xml"); shardedPool=(ShardedJedisPool)context.getBean("shardedJedisPool"); ShardedJedisclient=shardedPool.getResource(); try{ client.set("dddd","sss"); System.out.println(client.get("dddd")); }catch(Exceptione){ e.printStackTrace(); }finally{ shardedPool.returnResource(client);//mustbe } } }
<spanstyle="font-size:14px;color:#ff0000;"><strong>测试结果:</strong></span>
<strong><spanstyle="font-size:14px;color:#ff0000;"></span></strong>
<strong><spanstyle="font-size:14px;color:#ff0000;"></span></strong>
<strong><spanstyle="font-size:14px;color:#ff0000;"><imgsrc="https://img-blog.csdn.net/20160601002241745?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"alt=""/></span></strong>
<strong><spanstyle="font-size:14px;color:#ff0000;"></span></strong>
<spanstyle="font-size:14px;color:#ff0000;"><strong>关于这个错误网上找了好久都没有找到什么解决办法,但是我如果我把db.properties的配置直接写死在springbean的属性里不会报错,如下:</strong></span>
<imgsrc="https://img-blog.csdn.net/20160601002525692?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"alt=""/><spanstyle="font-size:14px;color:#ff0000;"><strong>测试不会报错:</strong></span>
我在网上找了很多spring整合redis集群的例子,发现都是用maven去构建的,难道我这样不用maven去获取db.properties就会有问题?哎,本人学识少,真的是很无奈啊。既然这样,我就准备尝试用maven去构建并实现spring并整合redis的集群。今天先把maven安装配置好。maven的安装配置网上很多资料,因我没用过maven,不过我就重复造轮子安装配置maven。
<spanstyle="font-size:18px;color:#ff0000;">maven包下载地址:http://maven.apache.org/download.html</span>
<spanstyle="font-size:14px;"><strong>下载后解压到D:\maven\apache-maven-3.3.9-bin,配置maven3的环境变量:先配置M2_HOME的环境变量,新建一个系统变量:M2_HOME,路径是:D:\maven\apache-maven-3.2.1,如图所示:</strong></span>
<strong><spanstyle="font-size:14px;"></span></strong>
<strong><spanstyle="font-size:14px;"><imgsrc="https://img-blog.csdn.net/20160601002956350?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"alt=""/></span></strong>
<spanstyle="font-size:14px;"><strong>再配置path环境变量,在path值的末尾添加"%M2_HOME%\bin",如下图所示;</strong></span>
<strong><spanstyle="font-size:14px;"></span></strong>
<imgsrc="https://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.3.9-bin\apache-maven-3.3.9,打开conf文件夹下的settings.xml文件,找到第53行,把注释去掉,修改成:<localRepository>E:/mvnRespo</localRepository>
eclipse中的设置:
为Eclipse安装Maven插件(默认已有,无需安装)为Eclipse配置MAVEN
从Eclipse的菜单栏点击Windows->Preferences->Maven ->Installations,将之前解压的maven添加进来,如图所示
点击UserSettings使用我们自己的Maven配置,如图所示
至此,就可以建maven项目了
maven已经搭建好了,等下次抽空用maven构建spring整合redis集群的例子,ok,睡觉!
相关文章推荐
- Redis服务端执行命令基本流程
- redis 安装
- Redis3.x-集群搭建
- Linux——》redis安装
- Redis——》介绍
- NoSQL之Redis---String类型命令
- Redis 事务
- Redis单机安装及启动
- 【Redis基础】Redis之Windows上安装&在Java中的使用
- Redis系列(1)---Redis的介绍和安装
- 搭建redis-sentinel(哨兵机制)集群
- centos6.7 安装redis
- redis的持久化(RDB和AOF方式)
- nginx-tomcat负载均衡redis-session共享,静态资源分离
- 《Redis设计与实现》[第二部分]单机数据库的实现-C源码阅读(一)
- linux下的redis安装以及php添加redis扩展
- nginx-tomcat负载均衡redis-session共享
- Redis学习笔记(八)Redis存储Tomcat集群的Session
- 定时任务
- Redis学习笔记(七)nginx+tomcat反向代理下使用tomcat-redis-session-manager进行session共享中值得注意的一个问题