我正在使用ServiceStack提供的Redis客户端的v3。我正在实现“装饰器模式”,并且有一个类将包装缓存逻辑包装在我的存储库中,这样如果有缓存未命中,我可以查看存储库中的数据。问题是在某些情况下,我想将null
添加到缓存中,以便有一个条目,但没有值。这意味着我不会转到数据库获取该值。
我需要知道的是,是否有任何方法可以为IRedisClient
界面获取仅缓存命中的键/值映射。
有多种方法可以使用此接口从缓存中检索值。首先,我尝试了GetAll<T>
方法。这将返回缓存中的项目以及T
的默认值(如果它不存在)。这对我没有帮助,因为它让我觉得我已经为给定的密钥添加了null
条目。
然后我尝试GetValues
,但只返回找到的值,而不是关联的键。
最后,我尝试GetValuesMap<T>
,但这似乎与GetAll<T>
完全相同。
有没有人知道如何只获取缓存命中的映射?
谢谢!
答案 0 :(得分:0)
IRedisClient有一个名为 ContainsKey(字符串键)的方法,您可以在尝试获取之前检查此方法。
如果ContainsKey返回true,您知道如果您返回一个空值,那么您自己添加了它。