3 Star 0 Fork 0

Gitee 极速下载 / dnscache

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/yahoo/dnscache
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
BSD-3-Clause

ARCHIVED

dnscache for Node

This module wraps the dns module methods and provide a caching layer in between. Every call to a dns method is first looked into the local cache, in case of cache hit the value from cache is returned, in case of cache miss the original dns call is made and the return value is cached in the local cache.

It is very similar to GOF Proxy design pattern providing a Cache Proxy.

The goal of this module is to cache the most used/most recent dns calls, to avoid the network delay and improve the performance.

Once this module is enabled, all the subsequent calls to require('dns') are wrapped too.

NOTE: There are situations where the built-in dns functions would throw, rather than call back with an error. Due to the fact that asynchronous caching mechanisms are supported, all errors for these functions will be passed as the first argument to the callback.

Installation

npm install dnscache

Usage

var dns = require('dns'),
    dnscache = require('dnscache')({
        "enable" : true,
        "ttl" : 300,
        "cachesize" : 1000
    });
    
    //to use the cached dns either of dnscache or dns can be called.
    //all the methods of dns are wrapped, this one just shows lookup on an example
    
    //will call the wrapped dns
    dnscache.lookup('www.yahoo.com', function(err, result) {
        //do something with result
    });
    
    //will call the wrapped dns
    dns.lookup('www.google.com', function(err, result) {
        //do something with result
    });
    

Configuration

  • enable - Whether dnscache is enabled or not, defaults to false.
  • ttl - ttl in seconds for cache-entries. Default: 300
  • cachesize - number of cache entries, defaults to 1000
  • cache - If a custom cache needs to be used instead of the supplied cache implementation. Only for Advanced Usage. Custom Cache needs to have same interface for get and set.

Advanced Caching

If you want to use a different cache mechanism (ex: mdbm, redis), you only need to create an object similar to this:

var Cache = function(config) {

    this.set = function(key, value, callback) {};

    this.get = function(key, callback) {};
};

Build Status

Build Status

Node Badge

NPM

Copyright (c) 2013, Yahoo! Inc. All rights reserved. Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Yahoo! Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Yahoo! Inc. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

简介

暂无描述 展开 收起
JavaScript
BSD-3-Clause
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
JavaScript
1
https://gitee.com/mirrors/dnscache.git
git@gitee.com:mirrors/dnscache.git
mirrors
dnscache
dnscache
master

搜索帮助