Stackexchange.redis缺少“等待”支持

时间:2019-09-10 13:10:36

标签: c# redis stackexchange.redis

我在客户端应用程序正在使用的负载均衡器后面有3个Web API服务器。 我正在使用此库来访问具有一个主机和几个从机的Redis集群。 目前不支持“ WAIT”操作,我需要此功能才能存储新创建的用户会话,并等待其复制到所有从属设备,以确保来自客户端的所有后续传入呼叫均读取该会话(可能会来不会失败(因为它可以尝试从Redis从站读取密钥)。

寻求实现这种方法的最佳实践。

2 个答案:

答案 0 :(得分:2)

WAIT本质上是一个阻塞操作,它违反了库所依赖的连接共享编程模型(请参阅更多here)。所以不,这没有暴露。

我们正在讨论允许使用更通用的池/租赁模型以及默认共享模型的想法,但是目前:这还不存在。但这会使阻止命令“安全”。

您可以通过Execute手动发行它,但是如果您这样做:您是一个人;如果它爆炸或引起任何类型的问题,那就玩吧!


不支持以下 (本质上它会发出阻止操作),但如果可以,则可以-如果它引起问题-会引起问题:

var tran = db.CreateTransaction();
_ = tran.StringSetAsync("mykey", cacheItem);
_ = tran.ExecuteAsync("wait", 2);
tran.Execute();

答案 1 :(得分:-1)

终于解决了-等待中缺少参数