Spring-data-redis配置及使用示例java
1、添加maven依賴redis
<!-- 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 -->
2、redis.propertiesspring
##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
3、apllicationContext-redis.xml
shell
<?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>
4、使用示例
apache
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(); } } }
5、redis幾種數據結構的使用數據結構
@Resource(name = "redisTemplate") private RedisTemplate<String, String> template;
tedisTemplate 集合了,全部數據類型的操做,先經過綁定類型 key,而後再進行操做:app
template.boundValueOps(stringKey); template.boundHashOps(key); template.boundListOps(key); template.boundSetOps(key); template.boundZSetOps(key);