在Redis集中表示空集

时间:2017-09-06 06:56:37

标签: java redis

我有一个使用Redis缓存来自关系数据库的查询数据的应用程序。

当我执行数据提取时,我首先检查Redis中的结果缓存,如果Redis中存在条目,则返回该结果。否则,如果未找到缓存结果,则对数据库执行查询并将结果存储到Redis中。

我希望能够从数据库中缓存空结果。在Redis中表示空集的最佳方法是什么,目前我正在存储 数据库中的值为0表示空集:

Set<Integer> handleNullCaseSet = new HashSet<>();
        handleNullCaseSet.add(0);

有没有更好的解决方案?

1 个答案:

答案 0 :(得分:1)

要在Redis中表示空集,您需要使用sentinel值来表示空集,如果Redis集为空,则将回收该密钥。您的解决方案目前使用零值进行此操作,没有更好的方法。

有关详细信息,请参阅this answer