c# - SetEntryInHash 与 SetEntryInHashIfNotExists

标签 c# redis servicestack

我在几个地方读到 Redis 是幂等的,所以重复调用 SetEntryInHash() 不会有任何效果,对吗?

使用 SetEntryInHashIfNotExists() 有什么好的案例吗?这能比盲目调用 SetEntryInHash() 更快得到结果吗?

最佳答案

Idempotent意味着您可以多次重播相同的 Action ,并且会产生相同的副作用。只有像 SADD 这样的幂等操作是幂等的,即在调用 1 次或超过 1 次之后,您将得到相同的结果,即集合中的单个项目。

添加到 redis 列表,例如LINSERT相比之下,它不是幂等的,因为每个新项目都会向 Redis 列表中添加一个新项目。

如果你想知道如何操作ServiceStack's Redis Client已实现,只需检查源代码。 SetEntryInHash and SetEntryInHashIfNotExists are here .他们都调用HSETHSETNX分别。请参阅 redis 中的文档以了解每个操作的行为。

关于c# - SetEntryInHash 与 SetEntryInHashIfNotExists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12805818/

相关文章:

c# - .Net 接口(interface)何时被视为等效?

c# - 在类声明中使用 #ifdef 使实现仅在调试期间可用以进行单元测试

c# - 在datagridview c#中调整行号列的大小

logging - ServiceStack日志清理

redis - 如何为Redis和他的哨兵指定密码?

c# - 将文本文件中的每一行放入数组 C#

redis - Redis 查询数

php - 在redis中处理层次结构

c# - 维护多个实例的处理顺序

binding - Multi-Tenancy ServiceStack API,是否可以通过相同的部署来响应不同主机名上的请求?