【发布时间】:2016-10-14 00:48:12
【问题描述】:
有没有办法使用 StackExchange.Redis 客户端在 Redis 中存储 Null 值?
如果您使用IDatabase.StringGet(key),则返回 Null 用于表示“没有结果”。因此,如果您使用IDatabase.StringSet(key, null),那么结果是您不知道是否存在 Null 值或 No 值!
有什么机制可以解决这个问题吗? - 即你想缓存一个否定。
我宁愿避免任何讨厌的哨兵值(如value ?? new byte[] {1}),如果值恰好匹配,以后可能会导致问题!
我查看了RedisValue.Null,但这只会产生与上述问题相同的 Null。
【问题讨论】:
-
您的用例是什么?为什么要针对键存储 null?
-
我的缓存层减少了对数据库的调用。有时我的数据库没有结果,所以我想缓存该结果,以便下次调用仅命中缓存(结果为“数据为空”)。此刻,空响应表明缓存没有结果,所以我最终去数据库然后获取“无”结果。