首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >批/事务处理中的Redis StringGet?

批/事务处理中的Redis StringGet?
EN

Stack Overflow用户
提问于 2017-08-01 14:16:46
回答 1查看 255关注 0票数 0

我们有一个Web应用程序,它使用Redis进行缓存。

当一个具有200 20值的密钥与几乎并发的请求(Fiddler Shift + R的相同请求20-50倍)被访问时,我注意到了一些延迟峰值。

该项目的正常读取时间约为50 is ,但峰值为800 is.。

我在想,如果有一个方法来优化这一点?是否有一种使用管道/批处理的方法?会有什么不同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-01 14:22:00

有可能吗?也许吧。问题是,你看到的请求是不相关的,也不知道对方。因此,要进行批处理,您需要执行如下操作:

  1. 收集来自传入请求的所有密钥。
  2. 每n毫秒为多个键发出一个redis GET
  3. 将结果分发给所有等待的来电者。

这造成了大量的管理开销,并减缓了请求的速度。

最好是使用内存中的缓存来存储一段时间的结果,并在将来的请求中重用它们。

这仍然是很棘手的,因为当前另一个请求从redis中获取的密钥是请求传入的。如果你关心这类事情,很难拒绝飞行中的请求。

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

https://stackoverflow.com/questions/45440341

复制
相关文章

相似问题

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