Spring Data 작업 Redis 데이터베이스 상세 정보
1. 시스템 설정, Maven을 사용하여 개발하면pom에서만 가능.xml 파일에 다음과 같은 설정을 추가합니다.
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.8.1.RELEASE</version>
</dependency>
</dependencies>
예를 들어 Spring Data 템플릿을 bean으로 설정하여 직접 사용할 수 있는 곳에 직접 주입할 수 있습니다.
<bean id="jedisConnFactory"
class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:use-pool="true"/>
<bean id="redisTemplate"
class="org.springframework.data.redis.core.RedisTemplate"
p:connection-factory-ref="jedisConnFactory"/>
2. Redis Template는 다양한 요구 사항에 따라 다음과 같은 작업을 패키지화합니다.
opsForValue() - Operations for working with entries having simple values
opsForList() - Operations for working with entries having list values
opsForSet() - Operations for working with entries having set values
opsForZSet() - Operations for working with entries having ZSet (sorted set) values
opsForHash() - Operations for working with entries having hash values
boundValueOps(K) - Operations for working with simple values bound to a given key
boundListOps(K) - Operations for working with list values bound to a given key
boundSetOps(K) - Operations for working with set values bound to a given key
boundZSet(K) - Operations for working with ZSet (sorted set) values bound to a given key
boundHashOps(K) - Operations for working with hash values bound to a given key
3. 일반적인 작업 예3.1 Redis Template 주입은 직접 템플릿으로 주입할 수도 있고ops 형식으로 주입할 수도 있습니다. 아래의 예에서 두 가지 방식에 대해 설명했습니다.
public class Example {
// inject the actual template
@Autowired
private RedisTemplate<String, String> template;
// inject the template as ListOperations
// can also inject as Value, Set, ZSet, and HashOperations
@Resource(name="redisTemplate")
private ListOperations<String, String> listOps;
public void addLink(String userId, URL url) {
listOps.leftPush(userId, url.toExternalForm());
// or use template directly
template.boundListOps(userId).leftPush(url.toExternalForm());
}
}
3.2 Bound 시리즈 조작 예시에서 Bound 시리즈 조작의 장점은 한 번만 귀속된 다음에 일련의 조작을 할 수 있다는 데 있다. 코드가 매우 정교하다.
BoundListOperations<String, Product> mangoOps = redis.boundListOps("solidmango");
Product popped = mangoOps.rightPop();
mangoOps.rightPush(product1);
mangoOps.rightPush(product2);
mangoOps.rightPush(product3);
3.3 Serializer 설정 예시, 일반적인 상황에서 키와 Value는 서로 다른 방식으로 지구화를 한다. 다음과 같은 예에서 키는 String을 사용하여 지구화를 하고 Value는 잭슨 형식으로 지구화를 한다.
@Bean
public RedisTemplate<String, Cart> redisTemplate(RedisConnectionFactory rcf) {
RedisTemplate<String, Cart> redis =
new RedisTemplate<String, Cart>();
redis.setConnectionFactory(rcf);
redis.setKeySerializer(new StringRedisSerializer());
redis.setValueSerializer(
new Jackson2JsonRedisSerializer<Product>(Product.class));
return redis;
}
총결산본고는 Spring Data 조작 Redis의 설정과 개발 방식에 대해 상세한 분석 설명을 했고 설정 부분은 구체적인 설정 방식을 제시했으며 코드 예시 부분은 세 가지 상황으로 나뉘어 구체적인 해결 방안을 제시했기 때문에 여러분에게 도움이 되기를 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.