如何在redis中存储一个空数组?

How to store an empty array in redis?

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

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

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

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

解决此问题的最佳方法是什么?同样感谢任何关于缓存、方法或设计的 help/suggestion。

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