【发布时间】:2018-05-02 13:00:44
【问题描述】:
我的 API 本地环境
node -v: v8.9.4
npm -v: 5.6.0
Package
memcached.js: "memcached": "^2.2.2"
我们有一个 Node API,我们在其中使用包 memcached.js 通过以下配置连接到 Memcache 服务器。
MEMCACHED_CONFIG:
{
MAX_VALUE: 1024,
SERVER: "X.X.X.X",
PORT: 11211,
COMPLETE_PATH: "X.X.X.X:11211",
CACHE_TIMEOUT: 3600,
POOL_SIZE: 50,
maxKeySize: 1024,
timeout: 5000
}
所以 X.X.X.X 是我们的 Memcache 服务器运行的远程服务器 IP。 我可以使用像 c:/> telnet X.X.X.X 11211 这样的 telnet 命令从我的系统连接这个 X.X.X.X 服务器,并且它可以工作。
cacheUtility.js
var MEMCACHED_CONFIG= require('./MEMCACHED_CONFIG');
var Memcached = require('memcached');
Memcached.config.maxValue = MEMCACHED_CONFIG.MAX_VALUE;
Memcached.config.poolSize = MEMCACHED_CONFIG.POOL_SIZE;
Memcached.config.maxKeySize= MEMCACHED_CONFIG.maxKeySize;
Memcached.config.timeout= MEMCACHED_CONFIG.timeout;
var memcached = new Memcached();
memcached.connect(MEMCACHED_CONFIG.COMPLETE_PATH, function( err,
conn ){
if( err ) {
CONFIG.CONSOLE_MESSAGE("Cache Connect Error "+conn.server);
}
});
我们使用上面的代码连接到 Memcached 服务器,你可以看到远程服务器 IP 来自 MEMCACHED_CONFIG。
我的问题是它总是尝试连接到 127.0.0.1 服务器,而不是通过远程 Memcached 服务器。所以为了运行它,我必须在核心包的 memcached.js 文件中进行更改。
C:\BitBucketProjects\Licensor Server\node_modules\memcached\lib\memcached.js
function Client (args, options) {
var servers = []
, weights = {}
, regular = 'localhost:11211'
//, regular = 'X.X.X.X:11211'
, key;
我不想对核心包进行任何更改。 为什么它没有连接到给定的服务器?
【问题讨论】:
-
我也面临同样的问题。有没有办法解决这个问题?