0

我正在使用 ServiceStack 提供的 Redis 客户端 v3。我正在实现“装饰器模式”,并有一个将缓存逻辑包装在我的存储库周围的类,这样如果有缓存未命中,我可以查看存储库中的数据。问题是在某些情况下我想添加null到缓存中,以便有一个条目,但没有任何价值。这意味着我不会去数据库获取那个值。

我需要知道的是,是否有任何方法可以仅为接口的缓存命中获取键/值映射IRedisClient

有多种方法可以使用此接口从缓存中检索值。首先,我试过这个GetAll<T>方法。T这会从缓存中返回项目,如果它不存在,则返回默认值。这对我没有帮助,因为它看起来好像我已经null为给定的键添加了一个条目。

然后我尝试GetValues了但只返回它找到的值,而不是关联的键。

最后,我尝试GetValuesMap<T>了,但这似乎与GetAll<T>.

有谁知道一种方法来获取仅缓存命中的映射?

谢谢!

4

1 回答 1

0

IRedisClient 有一个名为ContainsKey(string key)的方法,您可以在尝试 Get 之前检查它。

如果 ContainsKey 返回 true,则您知道如果返回 null 值,则表明您自己添加了它。

于 2015-03-04T21:32:22.787 回答