这就是事情- 我想在特定键下的redis中存储本机JS(node.js)对象(闪存套接字引用)。当我简单地做到这一点时,client.set()它存储为一个字符串。当我尝试获得价值时,我得到的[object Object]只是一个字符串。
client.set()
[object Object]
有机会工作吗?这是我的代码:
addSocket : function(sid, socket) { client.set(sid, socket); }, getSocket : function(sid) { client.get(sid, function(err, reply) { // cant't get an object here. All I get is useless string }); },
下载者:这里的上下文是SET命令,可以存储任意对象。
不,你不能那样做。您应该接受以下事实:Redis将所有内容存储为字符串(毕竟,协议是基于文本的)。Redis可能会执行一些优化并将某些值转换为整数,但这是它的事,而不是您的事。
如果要在Redis中存储 任意 对象,请确保在保存之前对它们进行了序列化,并在检索后反序列化。
不过,我不确定是否可以使用套接字对象来实现。毕竟,它们仅描述系统资源(开放连接)(例如TCP套接字)。如果您设法序列化描述并将其反序列化到另一台计算机上,则该另一台计算机将没有连接。