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

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

(*-*)浩
(*-*)浩원래의
2019-11-22 14:46:018497검색

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

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

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

  redis:
    database: 0
    host: 127.0.0.1
    port: 6379
    password: 123456
    timeout: 5000
    lettuce:
      shutdown-timeout: 200
      pool:
        max-active: 500
        max-idle: 100
        min-idle: 50
        max-wait: 2000

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.