SpringBoot 통합 Lettuce redis 프로 세 스 분석

먼저 Lettuce 클 라 이언 트 에 대해 설명 하 겠 습 니 다.
Lettuce 와 Jedis 는 모두 Redis Server 를 연결 하 는 클 라 이언 트 프로그램 입 니 다.Jedis 는 연결 풀 을 사용 하지 않 는 한 모든 Jedis 인 스 턴 스 에 물리 적 연결 을 추가 합 니 다.Lettuce 는 Netty 의 연결 인 스 턴 스(Stateful RedisConnection)를 기반 으로 여러 스 레 드 간 에 동시 방문 할 수 있 고 스 레 드 가 안전 하 며 다 중 스 레 드 환경 에서 의 동시 방문 을 만족 시 킬 수 있 으 며 신축 가능 한 디자인 이 며 연결 인 스 턴 스 가 부족 한 경우 에 도 필요 에 따라 연결 인 스 턴 스 를 추가 할 수 있 습 니 다.
1.의존 도 추가

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-redis</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-pool2</artifactId>
    </dependency>
2,redis 설정 추가

spring:
 redis:
   host: ****
   password:****
   port: 6379
 #       (  )
   timeout: 1000
 # Redis      16   ,           ,   0
   database: 0
 #      
   lettuce:
    pool:
 #         (          )    8
     max-active: 8
 #            (          )    -1
     max-wait: -1
 #                8
     max-idle: 8
 #                0
     min-idle: 0
3.논리 실현

@Autowired
  private StringRedisTemplate stringRedisTemplate;
  @Override
  public String testRedis(){
    ExecutorService executorService = Executors.newFixedThreadPool(1000);
    IntStream.range(0, 1000).forEach(i -> executorService.execute(() -> stringRedisTemplate.opsForValue().increment("lcl",1)));
    System.out.println("lcl1=============" + stringRedisTemplate.opsForValue().get("lcl"));
    stringRedisTemplate.opsForValue().set("lcl1","val1");
    String val1 = stringRedisTemplate.opsForValue().get("lcl1");
    System.out.println("lcl1=============" + val1);
    String key = "redis:test:demo1";
    User user = new User();
    user.setId(100L);
    user.setUsername("u2");
    user.setPassword("p2");
    stringRedisTemplate.opsForValue().set(key, JSON.toJSONString(user));
    String valUser = stringRedisTemplate.opsForValue().get(key);
    System.out.println("redis:test:demo1=============" + valUser);
    User getUser = JSON.parseObject(valUser, User.class);
    System.out.println("redis:test:demo1=============" + getUser.getUsername()+ "========" + getUser.getPassword());
    return null;
  }
테스트 결과:


redis 는 String,list,set,zset,hash,geo 등 유형 이 있 기 때문에 사용 할 때 opsForValue()방법 만 사용 하 는 것 이 아니 라 구체 적 인 대응 방법 은 다음 과 같다.
opsForValue:대응 하 는 String(문자열)
  • opsForZSet:대응 하 는 ZSet(질서 있 는 집합)
  • opsForHash:대응 Hash(해시)opsForList:대응 리스트(리스트)opsForSet:대응 세트(집합)opsForGeo:대응 GEO(지리 적 위치)이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기