我在几个地方读到 Redis 是幂等的,所以重复调用 SetEntryInHash()
不会有任何效果,对吗?
使用 SetEntryInHashIfNotExists()
有什么好的案例吗?这能比盲目调用 SetEntryInHash()
更快得到结果吗?
最佳答案
Idempotent意味着您可以多次重播相同的 Action ,并且会产生相同的副作用。只有像 SADD 这样的幂等操作是幂等的,即在调用 1 次或超过 1 次之后,您将得到相同的结果,即集合中的单个项目。
添加到 redis 列表,例如LINSERT相比之下,它不是幂等的,因为每个新项目都会向 Redis 列表中添加一个新项目。
如果你想知道如何操作ServiceStack's Redis Client已实现,只需检查源代码。 SetEntryInHash and SetEntryInHashIfNotExists are here .他们都调用HSET和 HSETNX分别。请参阅 redis 中的文档以了解每个操作的行为。
关于c# - SetEntryInHash 与 SetEntryInHashIfNotExists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805818/