目的:使用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 链接呢??
阿神2017-04-24 09:13:02
構成ファイルには、これに関連する 2 つの構成があります。
maxclients は、サポートされる最大クライアント接続を設定するために使用され、超過した場合に拒否されます。これは、Redis クライアントが同時にサポートできる接続数を設定するために使用されます。 (もちろん、この値に加えて、Linux システムの制限設定も確認する必要があります)
timeout タイムアウト設定は、ユーザーが接続し、Redis リクエストがトリガーされなかった後の時間を設定するために使用され、接続はアクティブになります。システムリソースを節約するためにサーバー側から閉じられます
Redis 接続リクエストには、通常 2 つのシナリオがあります:
ユーザーリクエストをトリガーするサーバーの数は制限されているため (たとえば、100 台以内)、タイムアウトを 0 に設定して、redis 接続リクエストが常に有効になり、一度接続した後は切断されないようにすることができます。サービスが再起動されるか、エラーが発生した後に再接続されます。
阿神2017-04-24 09:13:02
リクエストごとに再接続することはお勧めできません。リンクを構築するのは時間の無駄です。各モデルにリンク (createClient) を確立し、そこに保持することをお勧めします。 Redis のシングルスレッド処理特性により、接続プール自体は Redis にとってほとんど役に立ちません。