###新建maven工程
創建一個普通的maven工程,加入以下包,與redis相關的在最後,前面是spring相關jar包java
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.2.0.RELEASE</spring.version> <jackson-core.version>2.6.1</jackson-core.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <!-- redis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.8.1</version> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.7.1.RELEASE</version> </dependency> <!-- slf4j --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.10</version> </dependency>
###創建spring-redis.xml文件web
<?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:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> <context:component-scan base-package="com.test.redis" annotation-config="true"></context:component-scan> <!-- <context:property-placeholder location="classpath:redis.properties"/> --> <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="10"></property> <property name="maxWaitMillis" value="20000"></property> </bean> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="127.0.0.1"></property> <property name="port" value="6379"></property> <property name="password" value=""></property> <property name="poolConfig" ref="jedisPoolConfig"></property> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory"></property> <!-- 序列化方式 --> <property name="keySerializer" > <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean> </property> <property name="hashKeySerializer"> <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean> </property> <property name="valueSerializer"> <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"></bean> </property> <property name="hashValueSerializer"> <bean class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer"></bean> </property> </bean> <!-- 對String的操做進行封裝 --> <bean id="stringRedisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory"></property> </bean> </beans>
###建立源代碼
Order類redis
package com.test.redis; import java.io.Serializable; import java.util.Date; public class Order implements Serializable { private static final long serialVersionUID = 1L; private String id; private String orderNo; private double price; private Date createDate; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getOrderNo() { return orderNo; } public void setOrderNo(String orderNo) { this.orderNo = orderNo; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = createDate; } @Override public String toString() { return "Order [id=" + id + ", orderNo=" + orderNo + ", price=" + price + ", createDate=" + createDate + "]"; } }
OrderDao類spring
package com.test.redis; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisOperations; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Repository; @Repository public class OrderDao { @Autowired private RedisTemplate<String, Order> redisTemplate; public boolean save(Order order) { ValueOperations<String, Order> valueOperations = redisTemplate.opsForValue(); //valueOperations.set(order.getId(), order); boolean cc = valueOperations.setIfAbsent(order.getId(), order); return cc; } public Order read(String id) { ValueOperations<String, Order> valueOperations = redisTemplate.opsForValue(); Order order = valueOperations.get(id); return order; } public void delete(String id) { ValueOperations<String, Order> valueOperations = redisTemplate.opsForValue(); RedisOperations<String, Order> redisOperations = valueOperations.getOperations(); redisOperations.delete(id); } }
main測試方法api
package com.test.redis; import org.junit.Before; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { OrderDao orderDao = new OrderDao(); @SuppressWarnings("resource") @Before public void setup(){ ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-redis.xml"); orderDao = ctx.getBean(OrderDao.class); } @Test public void saveTest(){ Order order = new Order(); order.setId("2"); order.setPrice(30); boolean cc = orderDao.save(order); System.out.println(cc); Order order2 = orderDao.read("1"); System.out.println(order2); } }