SpringBoot 가 SpringDataRedis 를 통합 하 는 과정 을 분석 합 니 다.

Spring-Data-Redis 프로젝트(SDR 로 약칭)는 Redis 의 Key-Value 데이터 저장 작업 에 더욱 높 은 차원 의 추상 을 제공 합 니 다.Spring Framework 가 JDBC 에 지원 하 는 것 과 같 습 니 다.
프로젝트 홈 페이지:http://projects.spring.io/spring-data-redis/
프로젝트 문서:http://docs.spring.io/spring-data/redis/docs/1.5.0.RELEASE/reference/html/
본 고 는 SpringBoot 가 SpringDataRedis 를 통합 하 는 과정 을 소개 한다.
프로젝트 환경:Jdk 11.0.2,Redis 3.0.0,Centos 7
1.Redis 3.0.0 설치
Linux 에서 redis 설치 패키지 압축 풀기
在这里插入图片描述
在这里插入图片描述
압축 해제 후 디 렉 터 리 에 들 어가 컴 파일 합 니 다.
在这里插入图片描述
컴 파일 완료
在这里插入图片描述
지정 한 디 렉 터 리 에 redis 설치 하기
在这里插入图片描述
시작 redis
在这里插入图片描述
기본 포트 포트 포트:6379
사전 시작 에 속 합 니 다.터미널 전 체 를 차지 합 니 다.Ctrl+C 를 누 르 면 정지 합 니 다.
나중에 시작 하면 redis.conf 를 redis/bin 디 렉 터 리 에 복사 합 니 다.
在这里插入图片描述
복사 한 프로필 을 수정 하여 no 를 yes 로 설정 합 니 다.
在这里插入图片描述
在这里插入图片描述
Centos 7 오픈 포트
在这里插入图片描述
redis 를 시작 하여 redis 가 시작 되 었 는 지 확인 합 니 다.
在这里插入图片描述
IDEA 클 라 이언 트 도구 연결 redis 서비스 성공
在这里插入图片描述
2.SpringDataRedis 통합
1.pom.xml 파일 수정

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.example</groupId>
  <artifactId>springboot-redis</artifactId>
  <version>1.0-SNAPSHOT</version>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.6.RELEASE</version>
  </parent>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
<!--    SpringDataRedis2.x    jedis    jedis,      -->
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>3.3.0</version>
    </dependency>
  </dependencies>
</project>
2.RedisConfig 설정 클래스 만 들 기
jedis 의 원본 코드:
在这里插入图片描述

/**
 * @Author: kenewstar
 * @Description: Redis   
 * @Date:Created in 2020/6/27
 */
@Configuration
public class RedisConfig {
	//   
  @Bean
  public JedisPoolConfig jedisPoolConfig(){
    JedisPoolConfig config = new JedisPoolConfig();
    //     (  8)
    config.setMaxIdle(12);
    //     (  0)
    config.setMinIdle(6);
    //     (  8)
    config.setMaxTotal(24);
    return config;
  }

  /**
   * SpringDataRedis2.x       jedis
   * @param config
   * @return
   */
  @Bean
  public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig config){
    JedisConnectionFactory factory = new JedisConnectionFactory();
    //     ,SpringDataRedis2.x    
    factory.setPoolConfig(config);
    factory.setHostName("192.168.40.128"); //redis   ip
    factory.setPort(6379); //redis     
    return factory;
  }
	//redis   
  @Bean
  public RedisTemplate<String,Object> redisTemplate(JedisConnectionFactory factory){
    RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
    
    redisTemplate.setConnectionFactory(factory);
    //  key/value     
    redisTemplate.setKeySerializer(new StringRedisSerializer());
    redisTemplate.setValueSerializer(new StringRedisSerializer());

    return redisTemplate;
  }
}
Redis 서열 화기
在这里插入图片描述
3.Redis 테스트 클래스 만 들 기

/**
 * @Author: kenewstar
 * @Description:   redis  
 * @Date:Created in 2020/6/27
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = App.class)
public class TestRedisString {

  @Autowired
  private RedisTemplate<String,Object> redisTemplate;

  @Test
  public void set(){
    this.redisTemplate.opsForValue().set("name","muke");
  }
  @Test
  public void get(){
    Object name = this.redisTemplate.opsForValue().get("name");
    System.out.println(name);
  }
}
3.SpringDataRedis 액세스 Java 대상
자바 대상 에 접근 하 는 방법 을 추천 하지 않 으 면 공간 낭 비 를 초래 할 수 있 습 니 다.json 문자열 형식 으로 접근 하 는 것 이 좋 습 니 다.

/**
 * @Author: kenewstar
 * @Description:   redis  
 * @Date:Created in 2020/6/27
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = App.class)
public class TestRedisString {

  @Autowired
  private RedisTemplate<String,Object> redisTemplate;

  @Test
  public void setObject(){
    User user = new User();
    user.setId(1);
    user.setName("kenewstar");
    user.setAge(21);
    this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
    this.redisTemplate.opsForValue().set("user",user);
  }
  @Test
  public void getObject(){
    this.redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
    User user = (User)this.redisTemplate.opsForValue().get("user");
    System.out.println(user);
  }
}
4.SpringDataRedis 액세스 JSon 형식의 자바 대상

/**
 * @Author: kenewstar
 * @Description:   redis  
 * @Date:Created in 2020/6/27
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = App.class)
public class TestRedisString {

  @Autowired
  private RedisTemplate<String,Object> redisTemplate;

    @Test
  public void setJsonObject(){
    User user = new User();
    user.setId(2);
    user.setName("kenewstar2");
    user.setAge(22);
    this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(User.class));
    this.redisTemplate.opsForValue().set("userJson",user);
  }

  @Test
  public void getJsonObject(){
    this.redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(User.class));
    User user = (User) this.redisTemplate.opsForValue().get("userJson");
    System.out.println(user);
  }
}
5.SpringDataRedis 2.x 의 설정
1.application.yml 전역 프로필 만 들 기
redis 데이터베이스 연결 정보 와 연결 탱크 정 보 를 전역 프로필 에 설정 합 니 다.

#redis        
spring:
 redis:
  host: 192.168.40.128
  port: 6379
  password: #      
  database: 0 #     (0-15)   0
  timeout: 300s #      
  #redis     
  jedis:
   pool:
    max-idle: 16  #     (  8)
    min-idle: 4  #     (  0)
    max-active: 20 #     (  8)
    max-wait: 60000ms #               -1ms (-1 :      )     1  
2.RedisConfig 설정 클래스 만 들 기

/**
 * @Author: kenewstar
 * @Description: Redis   
 * @Date:Created in 2020/6/27
 */
@Configuration
public class RedisConfig {

  @Bean
  public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
    RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>();
    redisTemplate.setConnectionFactory(factory);
    redisTemplate.setKeySerializer(new StringRedisSerializer());
    redisTemplate.setValueSerializer(new StringRedisSerializer());
    return redisTemplate;
  }

}
3.SpringDataRedis 를 테스트 합 니 다.코드 는 상기 코드 테스트 코드 와 같 습 니 다.여기 서 다시 소개 하지 않 겠 습 니 다.
총결산
SpringBoot 통합 SpringDataRedis 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.SpringBoot 통합 SpringDataRedis 에 관 한 더 많은 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기