在Redis集合中表示空集

4
我有一个应用程序,它使用Redis缓存查询来自关系数据库的数据。当我获取数据时,首先检查Redis中的结果缓存,如果Redis中存在条目,则返回该结果。否则,如果没有找到缓存结果,则执行针对数据库的查询并将结果存储到Redis中。
我想能够缓存来自数据库的空结果集。那么,在Redis中表示空集的最佳方法是什么?当前,我正在将值0存储到数据库中表示空集。
Set<Integer> handleNullCaseSet = new HashSet<>();
        handleNullCaseSet.add(0);

有更好的解决方案吗?

你是为每个记录创建一个集合吗?能否请您分享一些示例数据,以了解您在Redis中存储数据的方式? - Mayank Jain
1个回答

2

为了表示Redis中的空集合,您需要使用一个哨兵值来代表空集合。如果Redis集合为空,则会回收该键。您目前的解决方案是使用零值,没有更好的方法。

有关更多信息,请参见此答案


实际上,Quiz Master正在按照您所说的方式进行相同的操作(使用0作为哨兵值)。我想他正在寻找更好的解决方案。 - Mayank Jain
我编辑了我的答案,以使其清楚任何解决方案都必须使用某种哨兵值。希望这样更有意义。 - Tague Griffith

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接