首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在c#中使用redis pipiline(StackExchange.Redis)?

如何在c#中使用redis pipiline(StackExchange.Redis)?
EN

Stack Overflow用户
提问于 2020-04-09 16:53:24
回答 1查看 192关注 0票数 2

我目前已经在我的linux系统上测试了redis-benchmark,结果给我留下了深刻的印象。但在基准测试中,我使用了16个命令的流水线。现在我正试着在c#上执行它。我的主要问题是,我想要将数千个随机数据记录到redis中,而我不知道如何使用流水线。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-04-09 17:05:39

在StackExchange.Redis中使用流水线的最明确方式是使用CreateBatch应用编程接口:

代码语言:javascript
复制
var db = conn.GetDatabase();
var batch = db.CreateBatch();
// not shown: queue some async operations **without** awaiting them (yet)
batch.Execute(); // this sends the queued commands
// now await the things you queued

但是,请注意,您可以在没有它的情况下实现很多目标,因为:

  • 从不同线程(无论是同步还是异步)并发加载is multiplexed,允许有效共享单个连接API“发出多个异步操作,但不要等待它们”的相同技巧仍然可以正常工作,即使没有批处理

(使用批处理API确保批处理作为连续的块发送,而不是并发线程在批处理内交错工作;这与CreateTransaction()

  • 类似,但没有那么严格)

还要注意,在一些批量场景中,您可能还需要考虑Lua (ScriptEvaluate());此API是可变的,因此可以适应任意的参数长度-您的Lua只需要检查KEYSARGV (discussed in the EVAL documentation)的大小。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61117360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档