redis 와 spring 통합 사용 절차 인 스 턴 스 튜 토리 얼
대형 소프트웨어 시스템 을 해 본 학생 들 은 시스템 데이터 가 점점 커지 고 복잡 해 지면 서 가 져 온 문 제 는 시스템 성능 이 점점 떨 어 지 는 것 이다.특히 데이터 베 이 스 를 자주 조작 하면 서 가 져 온 성능 손실 이 더욱 심각 하 다 는 것 을 알 고 있다.많은 실적 의 큰 소 들 이 이 를 위해 많은 해결 방안 을 제시 하고 많은 프레임 워 크 를 개발 하여 이러한 빈번 한 데이터 베 이 스 를 조작 하 는 데 가 져 온 성능 손실 을 최적화 시 켰 다.그 중에서 특히 두 개의 캐 시 서버 는 Memcached 와 Redis 이다.오늘 은 Memcached 와 Redis 자 체 를 이야기 하지 않 겠 습 니 다.스프링 과 Redis 의 통합 사용 에 관 한 내용 을 소개 합 니 다.다음은 더 이상 말씀 드 리 지 않 겠 습 니 다.상세 한 소 개 를 해 보 겠 습 니 다.
방법 은 아래 와 같다.
첫 번 째,프로젝트 에 redis 의 pom 코드 를 추가 합 니 다:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.6.0</version>
</dependency>
두 번 째 단계,spring 에 redis 프로필 불 러 오기:applicationContext-redis.xml,내용 은 다음 과 같 습 니 다.
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="${redis.maxTotal}" />
</bean>
<bean class="redis.clients.jedis.ShardedJedisPool">
<constructor-arg index="0" ref="poolConfig" />
<constructor-arg index="1">
<list>
<bean class="redis.clients.jedis.JedisShardInfo">
<constructor-arg index="0" value="${redis.node1.host}" />
<constructor-arg index="1" value="${redis.node1.port}" />
</bean>
</list>
</constructor-arg>
</bean>
</beans>
세 번 째 단 계 는 redis 서버 를 연결 하 는 속성 파일 을 작성 합 니 다:redis.properties
redis.maxTotal=100
redis.node1.host=127.0.0.1
redis.node1.port=6379
네 번 째 단 계 는 redis 와 관련 된 조작 방법 류,Function 류 와 RedisService 류 를 작성 합 니 다.Funcrion 클래스:
package xx.service;
/**
*
* @author yeying
*<p>Description:</p>
*<p>Company:</p>
* @date:2017 12 5 9:02:44
*/
public interface Function<T,E> {
public T callback(E e);
}
RedisService 클래스:
package com.taotao.common.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
/**
* redis
* @author yeying
*<p>Description:</p>
*<p>Company:</p>
* @date:2017 12 3 2:11:47
*/
@Service
public class RedisService {
@Autowired(required=false) //
private ShardedJedisPool shardedJedisPool;
private <T> T execute(Function<T, ShardedJedis> fun){
ShardedJedis shardedJedis = null;
try {
// jedis
shardedJedis = shardedJedisPool.getResource();
// redis
return fun.callback(shardedJedis);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != shardedJedis) {
// , , ,
shardedJedis.close();
}
}
return null;
}
/**
* set
* @param key
* @param value
* @return
*/
public String set(final String key,final String value){
return this.execute(new Function<String, ShardedJedis>() {
@Override
public String callback(ShardedJedis e) {
return e.set(key, value);
}
});
}
/**
* set , ,
* @param key
* @param value
* @param seconds
* @return
*/
public String set(final String key,final String value,final Integer seconds){
return this.execute(new Function<String, ShardedJedis>() {
@Override
public String callback(ShardedJedis e) {
String str =e.set(key, value);
e.expire(key, seconds);
return str;
}
});
}
/**
* get
* @param key
* @return
*/
public String get(final String key){
return this.execute(new Function<String, ShardedJedis>() {
@Override
public String callback(ShardedJedis e) {
return e.get(key);
}
});
}
/**
* set
* @param key
* @return
*/
public Long del(final String key){
return this.execute(new Function<Long, ShardedJedis>() {
@Override
public Long callback(ShardedJedis e) {
return e.del(key);
}
});
}
/**
* ,
* @param key
* @param seconds
* @return
*/
public Long expire(final String key, final Integer seconds) {
return this.execute(new Function<Long, ShardedJedis>() {
@Override
public Long callback(ShardedJedis e) {
return e.expire(key, seconds);
}
});
}
}
다섯 번 째 단계,redis 서비스 시작,redis-server.exe,더 블 클릭 으로 열기:총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redis 해시에 대한 완벽한 가이드변경 가능하므로 필요에 따라 쉽게 변경하고 업데이트할 수 있습니다. Redis 해시는 구조가 평평하므로 JSON에서와 같이 여러 수준을 가질 수 없습니다. redis 해시의 명명 규칙은 hash:key 로 입력되므로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.