小编典典

在ServiceStack Redis Client中使用验证进行事务性创建

redis

用户具有DisplayName,并且对用户而言是唯一的。

我想创建用户,但首先我必须检查显示名称(DisplayName不能为用户重复)

我已经检查了ServiceStack示例,但看不到带有验证检查的事务性插入/更新。

我该如何执行。我不想为Redis数据库编写“验证任务”。我不想在数据库中不一致。


阅读 486

收藏
2020-06-20

共1个答案

小编典典

ServiceStack.Redis客户确实有对Redis的的支持WATCH交易当这些Redis命令:

WATCH mykey
test = EXIST mykey
MULTI
SET mykey $val
EXEC

可以完成:

var redis = new RedisClient();
redis.Watch("mykey");
if (!redis.ContainsKey("mykey")) return;

using (var trans = redis.CreateTransaction()) {
    trans.QueueCommand(r => r.Set("mykey", "val"));
    trans.Commit();
}
2020-06-20