我有一个使用Redis缓存来自关系数据库的查询数据的应用程序。
当我执行数据提取时,我首先检查Redis中的结果缓存,如果Redis中存在条目,则返回该结果。否则,如果未找到缓存结果,则对数据库执行查询并将结果存储到Redis中。
我希望能够从数据库中缓存空结果。在Redis中表示空集的最佳方法是什么,目前我正在存储 数据库中的值为0表示空集:
Set<Integer> handleNullCaseSet = new HashSet<>();
handleNullCaseSet.add(0);
有没有更好的解决方案?
答案 0 :(得分:1)
要在Redis中表示空集,您需要使用sentinel值来表示空集,如果Redis集为空,则将回收该密钥。您的解决方案目前使用零值进行此操作,没有更好的方法。
有关详细信息,请参阅this answer。