node 使用 redis 来缓存数据,需要每次请求都创建链接吗?
PHP中文网
PHP中文网 2017-04-24 09:11:02
0
3
795

目的:使用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中文网

认证0级讲师

全員に返信(3)
阿神

構成ファイルには、これに関連する 2 つの構成があります。
maxclients は、サポートされる最大クライアント接続を設定するために使用され、超過した場合に拒否されます。これは、Redis クライアントが同時にサポートできる接続数を設定するために使用されます。 (もちろん、この値に加えて、Linux システムの制限設定も確認する必要があります)
timeout タイムアウト設定は、ユーザーが接続し、Redis リクエストがトリガーされなかった後の時間を設定するために使用され、接続はアクティブになります。システムリソースを節約するためにサーバー側から閉じられます

リーリー

Redis 接続リクエストには、通常 2 つのシナリオがあります:

  1. ユーザーリクエストをトリガーするサーバーの数は制限されているため (たとえば、100 台以内)、タイムアウトを 0 に設定して、redis 接続リクエストが常に有効になり、一度接続した後は切断されないようにすることができます。サービスが再起動されるか、エラーが発生した後に再接続されます。

  2. 多数のユーザーが同時にリクエストを行っている場合、タイムアウトは数分以内に設定できます (ビジネスに応じて決定されます)。接続後にクライアントは積極的に接続を閉じません。接続をリクエストする前に接続が閉じられます (タイムアウトによりサーバーによって閉じられます)。
いいねを押す +0
洪涛

独自の接続プールがあるようです

いいねを押す +0
阿神

リクエストごとに再接続することはお勧めできません。リンクを構築するのは時間の無駄です。各モデルにリンク (createClient) を確立し、そこに保持することをお勧めします。 Redis のシングルスレッド処理特性により、接続プール自体は Redis にとってほとんど役に立ちません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート