- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如何从 ServiceStack.Redis 管道读取值?我在 GitHub 上看到了例子,但我不确定如果同时有许多 QueueCommand(例如,10000 个),代码能否正常工作。
QueueCommand 的回调似乎是一个异步操作。每个 QueueCommand 都可以有一个回调。当调用 Pipeline.Flush() 时,所有 QueueCommand 将以管道模式发送到 Redis 服务器,当执行其中一个 QueueCommand 时,将调用其回调。
我的问题是:当 Pipeline.Flush() 完成时,库是否保证所有回调都已执行?
这里是GitHub上的ServiceStack.Redis代码
[Test]
public void Can_call_single_operation_with_callback_3_Times_in_pipeline()
{
var results = new List<long>();
Assert.That(Redis.GetValue(Key), Is.Null);
using (var pipeline = Redis.CreatePipeline())
{
pipeline.QueueCommand(r => r.IncrementValue(Key), results.Add);
pipeline.QueueCommand(r => r.IncrementValue(Key), results.Add);
pipeline.QueueCommand(r => r.IncrementValue(Key), results.Add);
//Can I assume that when Flush() finishes,
//all 3 callbacks (results.Add) would have finished?
pipeline.Flush();
}
Assert.That(Redis.GetValue(Key), Is.EqualTo("3"));
Assert.That(results, Is.EquivalentTo(new List<long> { 1, 2, 3 }));
}
最佳答案
您可以在以下位置找到 Redis Pipeline API 的一些测试:
是的,当您在 Redis 管道上调用 .Flush()
时,它是 flushes all the buffered commands to redis然后执行所有排队的回调。
关于c# - 从 ServiceStack.Redis 管道读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36882391/
这个问题在这里已经有了答案: final keyword in method parameters [duplicate] (9 个回答) 关闭 8 年前。 在此示例中,声明 Object fina
我的目标:是通过我的函数更新字段获取选定值并使用函数输出值运行它。 问题:当我从列表中选择值时,它不会触发函数,也不会更新字段。 感谢您的帮助。 HTML 12 14 16 18 20 22 24
我有一本具有这种形式的字典: myDict = {'foo': bar, 'foobar baz': qux} 现在,我想拆分字典键中的空格,使其成为下一个键并获取值(重复)。 myDictRev1
vector a; vector b; int temp_holder; cout > temp_holder) a.push_back(temp_holder); cout > temp_h
Java 的开发过程中免不了与 Date 类型纠缠,准备总结一下项目经常使用的日期相关操作,JDK 版本 1.7,如果能够帮助大家节约那么几分钟起身活动一下,去泡杯咖啡,便是极好的,嘿嘿。当然,我
我正在使用 jquery ui 日期选择器来获取 fromDate 和 toDate 以下是from日期的代码 $("#from_date").datepicker({
我是一名优秀的程序员,十分优秀!