redisTemplate 작업 및 관련 구성

5854 단어 캐시 기술
redisDao 패키지 클래스 - 기타 Dao 통합
package com.ffcs.wlan.dao.common;  
import javax.annotation.Resource;  
import org.springframework.data.redis.core.StringRedisTemplate;  
  
/**  
 * AbstractBaseRedisDao 
 * @author hugsh 
 * @version 1.0  
 */   
public abstract class AbstractBaseRedisDao {  
      
    @Resource  
    protected StringRedisTemplate redisTemplate;  
  
    public void setRedisTemplate(StringRedisTemplate redisTemplate) {  
        this.redisTemplate = redisTemplate;  
    }  
}  

대량 삽입(반환값에 관심 없음)
@Repository  
public  class RedisInitDao extends AbstractBaseRedisDao {  
          
    Logger logger=Logger.getLogger(RedisInitDao.class);  
      
        /** 
         *    redis   H :key(tableName:hcode) value(pcode) 
         *          false,   ,    。  pipeline     (      ) 
         *  @param list    map      ,2 key:hcode & pcode。 
         *  @param tableName redis key   tableName:hcode    value  pcode。 
         *  @return 
         */  
        public boolean addHcode(final List> list,final String tableName) {  
            boolean result = redisTemplate.execute(new RedisCallback() {  
                public Boolean doInRedis(RedisConnection connection)  
                        throws DataAccessException {  
                    RedisSerializer serializer = redisTemplate.getStringSerializer();  
                    for (Map map : list) {  
                        byte[] key  = serializer.serialize(tableName+":"+map.get("hcode").toString());  
                        byte[] name = serializer.serialize(map.get("pcode").toString());  
                        connection.setNX(key, name);  
                    }  
                    return true;  
                }  
            }, false, true);  
            return result;  
        }  

대량 수령(반환값 있음)
/** 
 *  redis   (      ) rPop       (     ) 
 *               ,        1000 。 
 *           1000  pop        , 
 *         pop,                 null        null 
 * @return 
 */  
public List getLogFromRedis() {  
      
    final RedisSerializer serializer = redisTemplate.getStringSerializer();  
    //         
    final Long pwdLogSize=redisTemplate.opsForList().size("getpwdList");  
      
    List pwdLogList=redisTemplate.executePipelined(new RedisCallback() {  
        @Override  
        public String doInRedis(RedisConnection conn)  
                throws DataAccessException {  
            for (int i=0 ;i newList=new ArrayList();  
    for (Object o : pwdLogList) {  
        if(o!=null)  
            newList.add(String.valueOf(o));  
    }  
    return newList;  
}  

기본 데이터 유형 도구 클래스(opsForList)
/** 
 *  redis         :leftPush         
 *  @param pwdLog         
 *  @return 
 */  
public void addLogIntoRedis(final String pwdLog) {  
    log.info("insert getpwd log into redis:"+pwdLog);  
    try {  
        redisTemplate.opsForList().leftPush("getpwdList", pwdLog);  
    } catch (Exception e) {  
        log.error(e.getMessage());  
    }  
} 

프로파일
  
  
  
  
      
          
           
          
          
      
      
      
      
      
      
          
             
      
  

 
  
      
          
              
                classpath:redis.properties  
                classpath:jdbc.properties  
              
          
      
  
  
  
  

속성 파일
# Redis settings  
redis.host=192.168.11.100  
redis.port=6379  
#redis.pass=hugsh    
redis.maxIdle=25  
redis.maxTotal=250  
#redis.maxActive=600 invalid in2.4  
redis.maxWait=1000  
redis.testOnBorrow=true  

좋은 웹페이지 즐겨찾기