标签:
Spring-data-redis配置及使用示例
一、添加maven依赖
<!-- redis --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.5.0.RELEASE</version> <scope>provided</scope> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.6.3</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>2.3</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> <scope>provided</scope> </dependency> <!-- redis -->
二、redis.properties
##applicationContext-redis.xml redis.ip=192.168.1.156 redis.port=6379 redis.timeout=5000 redis.maxIdle=10 redis.minIdle=1 redis.maxTotal=30 redis.maxWaitMillis=5000 #testOnBorrow true 指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个 redis.testOnBorrow=true
三、apllicationContext-redis.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd" default-lazy-init="true"> <description>Redis配置</description> <context:property-placeholder location="classpath*:redis.properties" /> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxTotal" value="${redis.maxTotal}" /> <property name="maxIdle" value="${redis.maxIdle}" /> <property name="minIdle" value="${redis.minIdle}" /> <property name="maxWaitMillis" value="${redis.maxWaitMillis}" /> <property name="testOnBorrow" value="${redis.testOnBorrow}" /> </bean> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="${redis.ip}" /> <property name="port" value="${redis.port}" /> <property name="timeout" value="${redis.timeout}" /> <property name="poolConfig" ref="jedisPoolConfig" /> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory" /> </bean> </beans>
四、使用示例
package cn.com.easy.redis; import java.util.concurrent.TimeUnit; import javax.annotation.Resource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * redis 测试 * * @author nibili 2015年5月13日 * */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("/applicationContext-redis-demo.xml") public class RedisTest { @Resource(name = "redisTemplate") private RedisTemplate<String, String> template; private String stringKey = "stringKey"; private String listKey = "listKey"; //private String hashKey = "hashKey"; //private String setKey = "setKey"; //private String sortSetKey = "sortSetKey"; /** * * * @auth nibili 2015年5月13日 */ @Test public void sendString() { try { template.boundValueOps(stringKey).set("hello", 10, TimeUnit.SECONDS); } catch (Exception ex) { ex.printStackTrace(); } } /** * * * @auth nibili 2015年5月13日 */ @Test public void getString() { try { String temp = template.boundValueOps(stringKey).get(); System.out.println("key:" + stringKey + ",value:" + temp); } catch (Exception ex) { ex.printStackTrace(); } } @Test public void pushList() { try { template.boundListOps(listKey).leftPush("list1"); } catch (Exception ex) { ex.printStackTrace(); } } @Test public void getList() { try { System.out.println(template.boundListOps(listKey).leftPop()); } catch (Exception ex) { ex.printStackTrace(); } } }
五、redis几种数据结构的使用
@Resource(name = "redisTemplate") private RedisTemplate<String, String> template;
tedisTemplate 集合了,所有数据类型的操作,先通过绑定类型 key,然后再进行操作:
template.boundValueOps(stringKey); template.boundHashOps(key); template.boundListOps(key); template.boundSetOps(key); template.boundZSetOps(key);
标签:
原文地址:http://my.oschina.net/u/1045177/blog/414634