【发布时间】:2012-01-23 20:06:45
【问题描述】:
我将 Heroku 实例设置为具有 Memcached,所以现在我有了 MEMCACHE_PASSWORD、MEMCACHE_SERVERS 和 MEMCACHE_USERNAME 环境变量。如何将它们与任何现有的 node.js memcached 库一起使用?它们似乎都只接收一个主机和端口(我假设端口是默认的 11211?)。
谢谢
【问题讨论】:
我将 Heroku 实例设置为具有 Memcached,所以现在我有了 MEMCACHE_PASSWORD、MEMCACHE_SERVERS 和 MEMCACHE_USERNAME 环境变量。如何将它们与任何现有的 node.js memcached 库一起使用?它们似乎都只接收一个主机和端口(我假设端口是默认的 11211?)。
谢谢
【问题讨论】:
如上所述,Heroku 上的两个 Memcache 插件都只支持二进制协议。我编写了一个库,MemJS,它可以与这些插件一起使用(支持二进制协议的 SASL 并开箱即用地识别 Heroku 环境变量)。
【讨论】:
截至今天,没有可用的节点库支持这种情况。 Heroku 的 memcached 实例使用 SASL 进行身份验证。当前可用的库都不支持此功能,there doesn't seem to be much momentum to add support, either。
如果您想尝试自己实现此功能,可能值得查看sasljs,它是一个围绕GNU SASL 的节点绑定。你最好的选择可能是 fork node-memcached 并在那里添加 SASL 支持。
【讨论】:
https://github.com/elbart/node-memcache
var client = new memcache.Client('11211', 'http://xxxx:xxxxx@mc10.ec2.northscale.net');
【讨论】:
[Error: getaddrinfo EFAULT]