【问题标题】:How to store an empty array in redis?如何在redis中存储一个空数组?
【发布时间】:2021-08-26 19:29:33
【问题描述】:

我只使用 Redis 作为缓存。我正在执行 IO 昂贵的数据并存储在 redis 中。例如数据:

[{"fname": "temp.txt", "size": 50, "type":"pdf", "mt": "Timestamp"},{..},...]

现在,由于数据是对象数组,我已将数据转换为字符串数组(字符串化 JSON)。数据不在缓存中的唯一情况是数据被驱逐或数据发生更改,在这种情况下我会删除键值对。

我的担忧
在某些情况下,我必须在 Redis 中存储一个空数组(没有键数据)。我怎样才能做到这一点?问题是我无法重新评估键的数据是否确实为空或不存在(其中 Redis 也返回一个空数组),并且由于这是一项 IO 密集型工作,我不想在重新评估时浪费资源。

解决此问题的最佳方法是什么?任何有关缓存、方法或设计的帮助/建议都同样受到赞赏。

【问题讨论】:

    标签: caching redis node-redis


    【解决方案1】:

    您似乎没有执行任何特定于列表的操作(例如添加元素、删除元素、读取子集等)。在这种情况下,您可以考虑使用string 而不是list。因此,您可以将数据转换为单个字符串 (Stringified JSONArray) 而不是字符串数组。并将该字符串保存在 Redis 中。空数组将被字符串化[],您将能够区分无数据和空数组。

    【讨论】:

      猜你喜欢
      • 2020-02-16
      • 2016-12-09
      • 1970-01-01
      • 1970-01-01
      • 2013-12-15
      • 2012-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多