在ServiceStack Redis客户端中使用验证进行事务创建

时间:2012-06-01 01:23:39

标签: redis servicestack

用户具有DisplayName,对用户来说是唯一的。

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

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

我该如何表演呢?我不想为redis db编写“验证任务”。 我不想要db中的不一致。

2 个答案:

答案 0 :(得分:2)

可以执行redis事务。更多信息here

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

使用PHP有更好的例子:here

答案 1 :(得分:2)

ServiceStack.Redis客户端确实支持Redis的WATCHtransactions这些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();
}