> 데이터 베이스 > Redis > 제다이와 재디스템플릿의 차이점

제다이와 재디스템플릿의 차이점

(*-*)浩
풀어 주다: 2019-11-22 14:46:01
원래의
8498명이 탐색했습니다.

제다이와 재디스템플릿의 차이점

Jedis는 Redis 운영을 위해 공식적으로 권장되는 Java 기반 클라이언트이며 RedisTemplate은 SpringDataRedis에서 JedisApi를 상위 수준으로 캡슐화한 것입니다.

기본 jedis와 spring의 redisTemplate을 사용하여 연결 풀을 호출한 결과 큰 차이점을 발견했습니다. dis 단위 테스트:

redisTemplate 단위 테스트:

  public void testJedis() throws IOException {
    GreExam greExam = new GreExam();
    greExam.setId(997);
    String greExamStr = JacksonUtil.bean2Json(greExam);
 
    long time = 0;
    for (int i = 0; i < 100; i++) {
      try (Jedis jedis = jedisPool.getResource()) {
        // 1、推送
        long time1 = System.currentTimeMillis();
        jedis.lpush("jedis-mq", greExamStr);
        // 2、接收
        String msg = jedis.brpoplpush("jedis-mq", "jedis-mq_bak", 0);
        jedis.lrem("jedis-mq_bak", 1, msg);
        long time2 = System.currentTimeMillis();
        time += time2 - time1;
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
    System.out.println("总时间:" + time);
  }
로그인 후 복사

적시성 비교

Con 포함: 기본 jedis의 효율성은 redisTemplate보다 낫습니다. 또한 테스트 결과 100개의 요청이 사용되었으며 매번 비즈니스 작업이 수행되지 않았으며 실행 속도가 매우 빨랐습니다. 그러나 자체 비즈니스 처리를 추가하거나 몇 초 동안 휴면 상태를 유지하는 경우도 있었습니다. , redis가 50개 이상의 연결에 대해 구성된 연결 풀을 계속 유지한다는 것을 알 수 있습니다.

싱글 쓰레드이기 때문에 마지막 제디스 실행이 완료된 후에도 닫히지 않은 것으로 보이며, 다음 호출에서는 유휴 연결을 할당하지 않고 최소 연결 수가 포화될 때까지 새로운 연결을 열어두는 것으로 보아, 그런 다음 빈 유휴 연결을 다음 연결에 할당합니다(이유에 따르면) 단일 스레드는 새 호출이 이루어질 때 이전 스레드가 완전히 유휴 상태이므로 새 연결이 열리지 않도록 해야 한다고 합니다. 구체적인 이유는 아직 의문입니다. 스레드 풀의 원리와 관련이 있을 수 있습니다.

Redis 관련 기술 기사를 더 보려면 Redis 데이터베이스 사용 튜토리얼 소개

칼럼을 방문하여 알아보세요!

위 내용은 제다이와 재디스템플릿의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿