一 Redis的安装
1:Window版Redis的安装
请参考网址http://os.51cto.com/art/201403/431103.htm
2:Linux版Redis的安装
请参考网址http://www.cnblogs.com/silent2012/p/3499654.html
安装完成之后,需要下载的几个jar文件。
二 配置和测试
1 配置
Redis.properties 写道
redis.ip=localhost
redis2.ip=192.168.1.1
#Port
redis.port=6379
#password
redis.password=mima
#最大能够保持idel状态的对象数
redis.pool.maxIdle=200
#当调用borrow Object方法时,是否进行有效性检查
redis.pool.testOnBorrow=true
#当调用return Object方法时,是否进行有效性检查
redis.pool.testOnReturn=true
redis2.ip=192.168.1.1
#Port
redis.port=6379
#password
redis.password=mima
#最大能够保持idel状态的对象数
redis.pool.maxIdle=200
#当调用borrow Object方法时,是否进行有效性检查
redis.pool.testOnBorrow=true
#当调用return Object方法时,是否进行有效性检查
redis.pool.testOnReturn=true
application-redis.xml的配置信息如下
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.pool.maxIdle}" /> <property name="testOnBorrow" value="${redis.pool.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="password" value="${redis.password}"/> <property name="poolConfig" ref="jedisPoolConfig" /> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory" /> </bean>
并在application-redis.xml中加入<bean id="testDao" class="impl.TestDao" />
2 测试。
在TestDao实现你基本添加和获取的方法。
(1)定义一个抽象类,并在该抽象类注入redisTemplate的方法
public abstract class AbstractRedisDao<K, V> {
@Autowired
protected RedisTemplate<K, V> redisTemplate;
public void setRedisTemplate(RedisTemplate<K, V> redisTemplate) {
this.redisTemplate = redisTemplate;
}
protected RedisSerializer<String> getRedisSerializer() {
return redisTemplate.getStringSerializer();
}
}
(2)定义添加和获取接口方法
public interface ITestClassDao {
/**
* 新增
* @param testClass
* @return
*/
boolean add(TestClass testClass);
/**
* 获取
* @param keyId
* @return
*/
TestClass get(String keyId);
}
(3) 定义实现
public class TestClassDao extends AbstractBaseRedisDao<String, TestClass> implements ITestClassDao {
/**
* 新增
* @param testClass
* @return
*/
public boolean add(final TestClass testClass) {
boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = getRedisSerializer();
byte[] key = serializer.serialize(testClass.getId());
byte[] name = serializer.serialize(testClass.getName());
return connection.setNX(key, name);
}
});
return result;
}
/**
* 获取
* @param keyId
* @return
*/
public TestClass get(final String keyId) {
TestClass result = redisTemplate.execute(new RedisCallback<TestClass>() {
public TestClass doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = getRedisSerializer();
byte[] key = serializer.serialize(keyId);
byte[] value = connection.get(key);
if (value == null) {
return null;
}
String name = serializer.deserialize(value);
return new TestClass(keyId, name);
}
});
return result;
}
}
三 结束
当然redis还有更复杂的多表查询,正在学习。