StackExchange.Redis.RedisServerException:调用 ITransaction.ExecuteAsync() 时出现错误未知命令“unwatch”

问题描述 投票:0回答:1

我正在使用 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 的其他方面有关?

c# .net redis stackexchange.redis amazon-elasticache
1个回答
0
投票

显然(对我来说是新闻),无服务器 AWS 不支持

watch
unwatch
- 。这意味着您不能使用约束(但事务本身应该在没有约束的情况下工作)。如果可用,无论如何,Lua (
ScriptEvaluate
) 可能是一个更好的选择(即使有可用的约束)。

© www.soinside.com 2019 - 2024. All rights reserved.