我在Ubuntu 11.10上使用Redis 2.2.11和Node,并且我保存了一个字符串,但它被作为缓冲区返回。Redis在某些操作系统上将字符串保存为缓冲区,而不是其他操作系统?
id = 1234;
console.log('data', data);
client.hmset("user:" + id, "name", data['name']);
client.hmget('user:' + id, "name", function(err, d) {
console.log('data retrieved', d);
});
这将产生在控制台上执行以下操作:
data { name: 'RealServer' }
data retrieved [ <Buffer 41 6e 6e 61 52 65 61 6c 53 65 72 76 65 72> ]
为什么要在一个字符串,出来作为缓冲? 缓冲区使调试非常困难!
在我的本地设置(使用Redis 2.2.14的MacOS 10.6)上,检索到的数据打印为字符串,很好。我想找到一个可以继续在两个系统上工作的解决方案。
更新:它也工作正常,没有在CentOS 5.7指定的编码。这是特定于Ubuntu的东西吗?是否有全系统修复?
谢谢!但是,为什么在我的MacOS系统上不会发生这种情况?是否有我可以使用的全局编码选项? – flossfan
如果没有在CentOS 5.7上指定编码,它也可以正常工作。这是OS范围内的事情吗?如果可以,我如何在Ubuntu中更改它? – flossfan
我会说只是指定编码更好,这样它就能保证在所有平台上都能正常工作。 – DHamrick