美文网首页
redis mget命令原理浅析

redis mget命令原理浅析

作者: 赵帅_a4fe | 来源:发表于2020-01-20 00:31 被阅读0次
集群下mget命令

1.mget命令的好处?

Mget命令将n个get请求汇聚成一条命令,n个get请求需要和服务器交互n次,也就意味着n次网络trip,以及n次请求协议解析,将n个get请求汇聚成一个mget请求,与服务器只交互一次,大大降低网络、协议解析的开销,从而大幅提升缓存访问效率。

2.集群模式下mget的方案优化

由于在集群模式下,mget获取的多个key,可能存在于多个分片,所以集群下的mget需要和多个分片做交互,衍生出多种方案

2.1. 传统的串行IO操作,也就说n个key,分n次串行操作来获取key,复杂度是o(n)。

2.2. 将Mget操作(n个key),利用已知的hash函数算出key对应的分片,这样就可以得到一个这样的关系:Map<node, somekeys>,也就是每个分片对应的一些keys,这样将之前的o(n)的效率降低到o(node.size())。

2.3. 在2.2方案的基础上将串行取数据改为并行取数据,进一步提高效率。

其中2.3方案效率最高,各类开源框架以及自研系统大多选用该方案。

3.各集群模式下的mget

3.1. 客户端分片集群模式,由客户端决定key写入或者读取的分片,jimdb实现了客户端分片机制,客户端存储集群分片信息,mget采用2.3方案拆分请求,客户端与集群分片直接并行交互,性能非常高,拆分请求、并行请求、聚合结果三个阶段都在客户端进行,所以集群服务端相对压力并不大,所以性能平稳,但客户端集群分片信息的管理以及同步复杂,开发难度大。

3.2. 基于代理的分片集群模式,客户端发送请求到一个代理,代理解析客户端的数据,将请求转发至正确的分片,然后将结果回复给客户端;客户端发送mget到proxy,由proxy进行mget请求的拆分、请求以及结果聚合,proxy资源充足情况下,表现良好,资源不足,性能会大大折扣,由于proxy多一次转发,性能也有所损耗,但对集群分片的管理,对客户端透明,也更加友好。

3.3. 路由查询集群模式,将请求发送到任意分片,接收到请求的分片会将查询请求发送到正确的分片上执行,Redis-cluster使用该模式,很遗憾,4.0 仅支持相同slot,key不能保证在相同slot还是没用。

参考资料:

https://www.jianshu.com/p/22aa8efaec8f
https://www.cnblogs.com/kaleidoscope/p/9630316.htmll
https://www.jianshu.com/p/172b39244c85
https://www.cnblogs.com/wuwuyong/p/11774679.html
https://www.cnblogs.com/renpingsheng/p/9862485.html
https://blog.csdn.net/antony9118/article/details/75293115

相关文章

  • redis mget命令原理浅析

    1.mget命令的好处? Mget命令将n个get请求汇聚成一条命令,n个get请求需要和服务器交互n次,也就意味...

  • Redis数据结构及使用场景

    ** 1、String ** 常用命令:除了get、set、incr、decr mget等操作外,Redis还提...

  • Redis MGET性能衰减分析

    MGET是redis中较为常用的命令,用来批量获取给定key对应的value。因为redis使用基于RESP (R...

  • Linux ftp 命令

    原文链接 一、ftp的get命令和mget命令有何不同? get一次只下载一个文件;mget一次可以下载多个文件,...

  • Redis批量操作详解及性能分析

    在之前的文章中,我们对redis批量处理指令mget进行了压测并分析了性能瓶颈,显然通过mget批量执行指令可以节...

  • redis入门(五)redis事务

    原理 将多个命令送入FIFO队列,然后顺序执行redis命令相关事务命令:multi exec watcheg: ...

  • redis笔记一

    操作命令:Stringset setex setnx incr incrby mget msetlist队列,栈如...

  • redis分布式锁

    1. redis分布式锁的原理 Redis Setnx(SET if Not eXists) 命令在指定的 key...

  • Redis之复制

    一、复制的目的 二、复制的原理(分为同步和命令传播两个操作) 2.1、旧版redis复制的原理 旧版redis的复...

  • Redis集群mget优化

    写在前面 哈哈哈哈哈,这次又来到了redis,redis对于大家来说,想必都已经熟悉了吧,笔者最近在做高并发的时候...

网友评论

      本文标题:redis mget命令原理浅析

      本文链接:https://www.haomeiwen.com/subject/qaidzctx.html