redis 结合Spring的应用 博客分类: Redis
程序员文章站
2024-02-14 20:36:40
...
一 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还有更复杂的多表查询,正在学习。
上一篇: Jame’s Reading 06-28
下一篇: Oracle 归档模式与非归档模式的切换