事情是这样的——我想在 redis 中存储原生 JS(node.js)对象(闪存套接字引用)的某个键。当我使用简单的 client.set()
执行此操作时,它会存储为字符串。当我尝试获取值(value)时,我得到 [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
});
},
最佳答案
由于套接字的类型是Object
,所以在存储之前需要将对象转换为字符串,在检索套接字时,需要将其转换回对象。
你可以使用
JSON.stringify(socket)
转换成字符串
JSON.parse(socketstr)
转换回一个对象。
编辑:
自从 2.0.0
版本发布以来,我们能够将对象作为哈希值存储到 Redis 中。
client.hmset("hosts", "mjr", "1", "another", "23", "home", "1234");
client.hgetall("hosts", function (err, obj) {
console.dir(obj);
});
关于object - node.js 在 redis 中存储对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694871/