我在C#中使用StackExchange.Redis 1.0.450 nuget。 我有类似下面的代码,它会在添加密钥之前检查密钥是否存在于redis中 -
if (!Cache.KeyExists(fKey))
{
Cache.StringSet(fKey, Serialize(data));
}
缓存 是 数据库 对象
我在这里阅读有关redis SET命令http://redis.io/commands/set 并发现如果已存在,SET将覆盖现有的键值。 使用StackExchange.Redis可以安全地删除存在的检查条件并调用 -
Cache.StringSet(fKey, Serialize(data));
感谢您的回复。
答案 0 :(得分:2)
您可能需要考虑其他三件事:
答案 1 :(得分:2)
默认行为是简单地覆盖,所以如果你没问题:你不需要检查。还有一个可选的when
参数,可让您更精确地控制此参数 - 请参阅redis NX
文档中的SET
etc参数,了解这在现实中意味着什么。对于“相等”检查,您可以使用具有约束的事务。