찾다

 >  Q&A  >  본문

node 使用 redis 来缓存数据,需要每次请求都创建链接吗?

目的:使用redis来缓存网站的固定内容数据在node开启的时候

遇到的问题:

var redis = require('redis'),
    client = redis.createClient();
    
client.hset([hash, hashtest, value],function(err,reply){
               callback(err,reply);
               // client.quit();
});

client.hget([hash,hashtest],function(err,reply){
               callback(err,reply);
               // client.quit(); 
})   

每次在请求完成以后是否需要client.quit 关闭链接,然后在请求的时候再次createClient 链接呢??

PHP中文网PHP中文网2796일 전788

모든 응답(3)나는 대답할 것이다

  • 阿神

    阿神2017-04-24 09:13:02

    구성 파일에는 이와 관련된 두 가지 구성이 있습니다.
    maxclients는 지원되는 최대 클라이언트 연결을 설정하는 데 사용되며, 이를 초과하면 거부됩니다. 이는 Redis 클라이언트가 지원할 수 있는 연결 수를 설정하는 데 사용됩니다. (물론 이 값 외에도 Linux 시스템의 제한 설정도 살펴봐야 합니다.)
    timeout 시간 제한 설정, 사용자가 연결하고 Redis 요청이 없는 후의 시간을 설정하는 데 사용됩니다. 트리거되면 시스템 리소스를 저장하기 위해 서버에서 연결이 적극적으로 종료됩니다.

    으아악

    Redis 연결 요청의 경우 일반적으로 두 가지 시나리오가 있습니다.

    1. 사용자 요청을 발생시키는 서버는 제한되어 있으므로(예: 100개 이내), 제한 시간을 0으로 설정하면 redis 연결 요청이 항상 유효하고 한 번만 연결한 후에는 연결이 끊어지지 않습니다. 서비스가 다시 시작되거나 오류가 발생한 후

    2. 동시에 많은 사용자가 요청하는 경우 몇 분 이내에 시간 초과를 설정할 수 있으며(비즈니스에 따라 결정됨) 클라이언트가 연결 후 적극적으로 연결을 종료하지 않습니다. 연결을 요청하기 전에 연결이 종료된 것으로 확인되었습니다(시간 초과로 인해 서버에 의해 종료됨).

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-24 09:13:02

    자체적인 커넥션 풀이 있는 것 같아요

    회신하다
    0
  • 阿神

    阿神2017-04-24 09:13:02

    요청할 때마다 다시 연결하는 것은 권장되지 않습니다. 링크를 구축하는 데 소요되는 시간 낭비 일뿐입니다. 각 모델에 링크(createClient)를 설정하고 유지하는 것이 좋습니다. Redis의 단일 스레드 처리 특성으로 인해 연결 풀 자체는 Redis에 거의 사용되지 않습니다.

    회신하다
    0
  • 취소회신하다