redisTemplate 작업
package com.ffcs.wlan.dao.common;
import javax.annotation.Resource;
import org.springframework.data.redis.core.StringRedisTemplate;
/**
* AbstractBaseRedisDao
* @author hugsh
* @version <b>1.0</b>
*/
public abstract class AbstractBaseRedisDao<K, V> {
@Resource
protected StringRedisTemplate redisTemplate;
public void setRedisTemplate(StringRedisTemplate redisTemplate) {
this.redisTemplate = redisTemplate;
}
}
대량 삽입(반환값에 관심 없음)
@Repository
public class RedisInitDao extends AbstractBaseRedisDao<String, Object> {
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<Map<String, Object>> list,final String tableName) {
boolean result = redisTemplate.execute(new RedisCallback<Boolean>() {
public Boolean doInRedis(RedisConnection connection)
throws DataAccessException {
RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
for (Map<String, Object> 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<String> getLogFromRedis() {
final RedisSerializer<String> serializer = redisTemplate.getStringSerializer();
//
final Long pwdLogSize=redisTemplate.opsForList().size("getpwdList");
List<Object> pwdLogList=redisTemplate.executePipelined(new RedisCallback<String>() {
@Override
public String doInRedis(RedisConnection conn)
throws DataAccessException {
for (int i=0 ;i<pwdLogSize ;i++) {
byte[] listName = serializer.serialize("getpwdList");
conn.rPop(listName);
}
return null;
}
}, serializer);
// null
ArrayList<String> newList=new ArrayList<String>();
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());
}
}
프로파일
<?xml version="1.0" encoding="UTF-8"?>
<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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.maxTotal}"></property>
<property name="maxIdle" value="${redis.maxIdle}" />
<property name="maxWaitMillis" value="${redis.maxWait}" />
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>
<bean id="connectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="${redis.host}" p:port="${redis.port}" p:pool-config-ref="poolConfig"/>
<bean id="redisTemplate" class="org.springframework.data.redis.core.StringRedisTemplate">
<property name="connectionFactory" ref="connectionFactory" />
</bean>
</beans>
<!-- -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:redis.properties</value><!-- redis -->
<value>classpath:jdbc.properties</value><!-- spring-jdbc -->
</list>
</property>
</bean>
<!-- model,dao service ( ) -->
<context:component-scan base-package="com.ffcs.wlan.model,com.ffcs.wlan.dao,com.ffcs.wlan.service" />
속성 파일
# 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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.