这几天一直在学习redis集群。然后准备用spring实现redis多机操作,不幸的是,遇到问题好几天都解决不了,一度想放弃,可是想想,遇到困难正是学习提高的时候,就决定换种方式去实现多机操作。现在我把遇到问题贴出来:
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:因为家里电脑只安装一个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
#当调用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.3.9-bin,配置maven3的环境变量:先配置M2_HOME的环境变量,新建一个系统变量:M2_HOME , 路径是:D:\maven\apache-maven-3.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.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添加进来,如图所示

点击User Settings 使用我们自己的Maven配置,如图所示

至此,就可以建maven项目了

maven已经搭建好了,等下次抽空用maven构建spring整合redis集群的例子,ok,睡觉!
分享到:
相关推荐
在前端技术上,他精通JavaScript、Ajax和jQuery,对solr集群搭建和solrJ的Java接口应用有经验,同时也了解redis集群的搭建和Java接口应用,对并发解决方案有实际的集群环境下实施经验。 在工作经历方面,谌纪委有多...
他对于Spring全家桶(Spring、SpringMVC、Mybatis、Hibernate、SpringBoot、SpringData)有深入的理解,同时熟悉SSH(Spring+Struts+Hibernate...SpringMVC+Mybatis)、以及SSS(Spring+SpringMVC+SpringData)的整合开发...
* 掌握 Tomcat 服务器的应用部署和集群配置 9.项目经验 * 具有丰富的项目经验,包括泉翼达商城框架构建、行天下汽车租赁管理系统框架构建和凤凰花园办公一体化管理系统框架构建等 * 熟悉使用 SpringMVC、Mybatis ...
* 熟悉使用 Tomcat 服务器的应用部署和集群配置 项目经验 * 有丰富的 Java 软件开发经验,参与过多个项目的开发 * 熟悉使用 Spring + SpringMVC + Mybatis + Mysql 等技术栈进行项目开发 * 有使用 Hibernate 框架...
2013年7月至2017年9月,求职者在一家民营公司任职,参与了系统的需求分析、架构设计、详细设计、编码实现、测试部署和日常维护工作,同时也负责解决技术问题并研究新技术,如dubbo+zookeeper、solr集群、redis集群等...
6. **分布式系统**:她熟悉Nginx的使用和集群配置,以及Redis和Solr的集群操作,这显示了她在分布式系统和搜索引擎优化方面的技能。 7. **其他技术**:张三了解WebService技术,能处理跨系统通信,且能运用Linux...
2. **Web框架**:她熟悉SSH(Struts2、Hibernate、Spring)和SSM(SpringMVC、Spring、MyBatis)框架的整合开发。这些框架使得JavaWeb开发更加高效,提供了模型-视图-控制器(MVC)结构,方便进行业务逻辑处理和数据...
* 熟悉使用 Mysql、Oracle、Mongodb 关系型数据库及非关系型数据库的部署Redis、Oscache 等缓存技术。 * 熟悉掌握多表关联的 sql 查询语句的书写、数据库的优化以及服务器优化(nginx 搭建和配置、Tomcat 优化、Jvm ...
10. 服务器技术:包括 Tomcat 服务器的应用部署和集群配置工作,掌握 Nginx 服务器的使用。 11. 项目管理:包括项目的需求分析、设计、编码、测试、部署等阶段,熟悉使用 Maven 和 SVN 来管理项目。 12. Java 项目...
服务器部署方面,他熟悉Tomcat服务器应用部署和集群配置,了解XML技术,掌握了Solr全文检索技术和集群部署。对于操作系统,他熟悉Linux常用命令,懂得使用VMware虚拟机,还熟悉Nginx静态服务器。此外,他还了解TCP、...
7. **分布式系统**:熟悉Nginx的使用和集群,以及Redis和Solr的集群,这表明她有分布式服务架构的知识,适合处理高并发和大数据量的场景。 8. **其他技术**:了解WebService,知道Linux常用命令,具备一定的英语...
maven(构建项目),svn(版本控制工具),myeclipse(集成开发环境),nginx(反向代理), FastDFS (图片服务器),tomcat(web服务器),zookeeper(集群管理),mysql(数据库) Junit(测试) ### 技术栈: spring,...
3. **Java 应用服务器**:Apache Tomcat 是常见的Java Web应用服务器,应能熟练安装、配置和调试,进行Java程序的部署。 4. **框架**:熟悉Spring、SpringMVC、Mybatis 和 Springboot,这些是Java后端开发常用的...
myeclipse idea vi VS webstorm sublime text 版本控制 svn git 项目管理 maven Nexus Jenkins 工作软件 反编译软件 office系列 下载器 adobe系列 记录软件 思维导图 office--Note 邮件管理 ...
maven(构建项目),svn(版本控制工具),myeclipse(集成开发环境),nginx(反向代理), FastDFS (图片服务器),tomcat(web服务器),zookeeper(集群管理),mysql(数据库) Junit(测试) ### 技术栈: spring,...
1. **数据库**:他熟练使用Redis,这是一个内存数据存储系统,常用于高速数据缓存。 2. **服务器**:对Nginx有深入了解,Nginx是一款高性能的HTTP和反向代理服务器,常用于负载均衡和静态资源处理。 3. **分布式系统...