我正在使用 StackExchange.Redis 库,连接到 AWS ElastiCache for Redis(无服务器)。
示例代码:
ITransaction transaction = db.CreateTransaction();
transaction.AddCondition(Condition.StringEqual("key:{id1:id2:id3}:stats:sum", "100"));
transaction.ListLeftPushAsync("key:{id1:id2:id3}:stats:samples", "20");
transaction.StringSetAsync("key:{id1:id2:id3}:stats:sum", "120");
transaction.StringSetAsync("key:{id1:id2:id3}:stats:updated_at", "1707808358");
await transaction.ExecuteAsync();
我收到以下错误:
StackExchange.Redis.RedisServerException: ERR unknown command 'unwatch', with args beginning with:
我似乎无法在本地重现此问题,所以它可能与集群模式或 Serverless ElastiCache 的其他方面有关?
显然(对我来说是新闻),无服务器 AWS 不支持
watch
或 unwatch
- 源。这意味着您不能使用约束(但事务本身应该在没有约束的情况下工作)。如果可用,无论如何,Lua (ScriptEvaluate
) 可能是一个更好的选择(即使有可用的约束)。