【问题标题】:redis node library json serialization for list values列表值的redis节点库json序列化
【发布时间】:2011-12-24 21:43:24
【问题描述】:

我正在尝试使用 redis-node 库在 redis 中创建一个活动提要列表,并且有一个 json 序列化问题。

如果我将一个值 lpush 到一个键中,这些值将存储为转义 json,当我使用 lrange 检索时,我会返回一个转义 json 列表。

我应该简单地遍历列表项和 JSON.parse(item) ,还是有更好更有效的方法?具体来说,有没有我可以使用的配置来避免转义和取消转义 json 值的开销?

【问题讨论】:

    标签: node.js redis


    【解决方案1】:

    存储值时使用JSON.strinfigy(object),检索值时使用JSON.parse(value)

    【讨论】:

    • 有没有办法在没有转义引号的情况下存储它,或者作为原生 json 对象而不是字符串和解析?
    • redis 将 JSON 存储为字符串。为什么值中的引号被转义很重要?它们必须是为了让任何人都知道值何时结束。
    • 希望避免遍历列表项集合并在每个项上调用 json 解析。
    • 如果它确实返回了一个 Javascript 对象而不是 JSON 字符串,它必须在某个时候调用JSON.parse。您可以通过添加执行此操作的中间件函数来扩展 redis 模块。
    • @MonkeyBonkey 是的,我修改了 Douglas Crawfords JSON 脚本。它删除了键名周围不必要的引号(但仍然在属性名周围留下引号(显然,否则 JSON 不起作用:))。这是script,使用JSONLITERAL.stringify。此外,此方法从删除引号中节省了额外的字节,我用来通过 websocket 管道发送数据。撕掉引号可能不会节省很多字节,但如果要解析很多东西,它会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-20
    • 1970-01-01
    • 2015-08-28
    • 1970-01-01
    • 2013-07-04
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多