object - node.js 在 redis 中存储对象

标签 object node.js redis

事情是这样的——我想在 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);
});

https://redis.io/commands/hset

https://github.com/NodeRedis/node_redis

关于object - node.js 在 redis 中存储对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8694871/

相关文章:

c++ - 有没有一个工具可以绘制我的 C++ 类和方法的图形表示?

javascript - Windows 8 上的 Sails.js

javascript - 回调执行得太早

json - node-forever json 配置支持所有选项吗?

Redis sentinel 在 raid-check 运行时进入 TILT 模式?

spring-boot - 使用Spring的@EnableRedisHttpSession时如何在 Controller 中获取session或redis key的过期时间?

javascript - 使用 underscore.js 展平对象的 javascript 数组

javascript - Javascript getter/setter 的奇怪行为

redis - (8.0/9.0/Master) 有没有办法实现Redis作为Odoo 8的缓存机制?

JavaScript - 返回两个对象之间的差异?