首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >比较redis命令:

比较redis命令:
EN

Stack Overflow用户
提问于 2016-11-04 05:35:33
回答 1查看 1K关注 0票数 1

有两个系统共享一个redis数据库,一个系统只读取redis,另一个系统更新它。

读系统太忙了,红人无法处理它,为了减少请求的数量,我找到了"mget",但我也找到了"multi“。

  1. 我相信mget会减少请求的数量,但是“多重”也会这样做吗?我认为“多”会迫使redis服务器保存一些有关这个事务的信息,并从客户端一个接一个地收集这个事务中的请求,所以发送的请求总数保持不变,但是返回的结果将合并在一起,对吗?
  2. 所以,如果我只是读KeyA,keyB,keyC中的“多”,当另一个写系统改变KeyB的值时,会发生什么呢?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-04 06:40:39

简单回答:您应该使用MGET

MULTI用于事务,它不会减少请求的数量。另外,MULTI命令在将来可能会被废弃,因为还有更好的选择:lua scripting

  1. 所以,如果我只是读KeyA,keyB,keyC中的“多”,当另一个写系统改变KeyB的值时,会发生什么呢?

因为MULTI (使用EXEC)命令确保事务处理,所以所有三个GET命令(读取操作)都原子地执行。如果更新发生在读取操作之前,您将得到旧的值。否则,你会得到新的价值。

顺便说一句,还有另一种减少RTT的选择:PIPELINE。但是,在您的情况下,MGET应该是最好的选择。

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

https://stackoverflow.com/questions/40415923

复制
相关文章

相似问题

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