一:配置依赖的jar
==
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.7.2.RELEASE</version>
</dependency>
==
二:设置redis.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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">
<!-- 这里高低版本有所不同 -->
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="5" />
<property name="maxIdle" value="5" />
<property name="minIdle" value="0" />
<property name="testOnBorrow" value="true" />
</bean>
<!-- 设置JedisCOnnetionFactory -->
<bean id="jedisFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="192.168.40.129" p:port="6379" p:password="123456"
p:pool-config-ref="poolConfig" />
<!-- 设置我在代码中会用到的redisTempleat -->
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="jedisFactory" />
</bean>
</beans>
==
三:编写代码:
==
package com.we.service;
import java.io.Serializable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializer;
@SuppressWarnings("unchecked")
@org.springframework.stereotype.Service
public class RedisServiceImpl implements RedisService {
@Autowired
private RedisTemplate<Serializable, Serializable> redisTemplate;
@Override
public boolean insert(final Object key, final Object value) {
return redisTemplate.execute(new RedisCallback<Boolean>() {
@Override
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<Object> ks = (RedisSerializer<Object>) redisTemplate
.getKeySerializer();
RedisSerializer<Object> vs = (RedisSerializer<Object>) redisTemplate
.getValueSerializer();
return connection.setNX(ks.serialize(key), vs.serialize(value));
}
});
}
@Override
public Object get(final Object key) {
return redisTemplate.execute(new RedisCallback<Object>() {
@Override
public Object doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<Object> ks = (RedisSerializer<Object>) redisTemplate
.getKeySerializer();
return redisTemplate.getValueSerializer().deserialize(
connection.get(ks.serialize(key)));
}
});
}
}
==
四测试
==
public class RedisTest {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext(
"applicationContext.xml");
RedisService o = (RedisService) ctx.getBean("redisServiceImpl");
boolean b = o.insert("name1", "zhangsan");
System.out.println(b);
String name = (String) o.get("name1");
System.out.println(name);
Person person = new Person();
person.setName("new Person");
boolean ip = o.insert("person", person);
System.out.println("插入person " + ip);
Person getPerson = (Person) o.get("person");
System.out.println(getPerson.getName());
}
}
==