`

redis 结合Spring的应用

 
阅读更多

一 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

 

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还有更复杂的多表查询,正在学习。

 

 

 

 

 

 

  • 大小: 1.3 KB
  • 大小: 1 KB
  • 大小: 1.1 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics