项目中使用spring和redis的整合

前言:最近刚刚换了一下公司(唱吧)做O2O线上线下KTV产品。公司之前有一个ERP1.0,但是因为各种原因吧,公司要换一个技术重做这个系统。选择了使用C#做winfrom前端,然后JAVA做服务器的后端。所有的项目架构以及代码全部重新设计。所以就有了让我去做redis缓存以及后期的读写分离的架构。好了,闲话少说,开始说正题了。第一次写博客,还望大家多多包涵,写的读不懂的地方留言,然后我会改进。

在项目中我使用的是spring内部整合的redis。不得不服,spring几乎整合了当下所有流行的框架。http://projects.spring.io/spring-data/ 从这上面看,当下流行的redis、solr、hadoop、mongoDB、couchBase... 全都收入囊中。对于redis整合而言,主要用到的是spring-data-redis

使用步骤
  1. 添加pom依赖
    <span style="font-weight: normal;">	<!-- spring data redis -->
    	<dependency>
                <groupId>org.springframework.data</groupId>
                <artifactId>spring-data-redis</artifactId>
                <version>1.4.2.RELEASE</version>
            </dependency>
    	<!-- spring data redis end --></span>
    其他的spring所需要的包,请大家自行添加就好。
  2. 配置spring-redis.xml文件。
    <span style="font-weight: normal;"><!-- 关于添加 ignore-unresolvable="true" 的解释,因为A配置器在执行的时候,只加载了A的properties,但是此时会扫描整个容器中的bean,发现有moduleb的占位符,无法解析。 所以加上配置,忽略无法解析的占位符就行 property name="ignoreUnresolvablePlaceholders" value="true",这样A配置器忽略掉的占位符等到B配置器执行的时候就解析成功了。-->
    	<context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/>
    	
    	<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    		<property name="maxIdle" value="${redis.maxIdle}" />
    		<property name="maxTotal" value="${redis.maxActive}" />
    		<property name="maxWaitMillis" value="${redis.maxWait}" /> 
    		<property name="testOnBorrow" value="${redis.testOnBorrow}" />
    		<property name="testOnReturn" value="true" />
    	</bean>
    
    	<bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
    		p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}"
    		p:pool-config-ref="jedisPoolConfig" />
    		
    	<!-- redis 序列化策略 ,手动指定 key 采用String序列化策略 -->
    	<bean id="stringSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer" />
    	
    	<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
    		<property name="connectionFactory" ref="connectionFactory" />
    		<property name="keySerializer" ref="stringSerializer" />
    		<!-- 开启事务,可以通过transcational注解控制 -->
    		<property name="enableTransactionSupport" value="true" />
    	</bean>
    	
    	<bean class="com.changba.idc.dao.Login"/></span>
redis.properties   
       
<span style="font-weight: normal;">redis.host= 192.168.1.1
redis.port= 6379
redis.timeout= 1000
redis.pass= admin
  
#连接池中最大空闲连接数
redis.maxIdle=300
#连接池中最大连接数
redis.maxActive=600
#当连接池资源耗尽时,调用者最大阻塞时间,超时将异常。单位 毫秒  默认为-1  永不超时
redis.maxWait=1000
#向调用者输出“链接”资源时,是否检测是有有效,如果无效则从连接池中移除,并尝试获取继续获取。默认为false。
redis.testOnBorrow=true
#向连接池“归还”链接时,是否检测“链接”对象的有效性。默认为false
reids.testOnReturn=true</span>

接下来在web.xml中的contextConfigLocation节点下将spring-redis.xml加入进去。在web容器启动时就自动加载spring-redis.xml配置文件就可以了。
使用的时候在代码中使用@Autowired 自动注入,然后定义redisTemplate 就可以使用了    private RedisTemplate<String, Object> redisTemplate;

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值