1、批量操作
在集群中,redis要求mset,mget这类批量命令必须在要个槽类,这种要求相当的苛刻,客户端实现复杂不便,所有采用以下方式对批量操作进行优化。
a、串行mget

这个意思就是客户端去for循环遍历每个key然后去找到对应的redis节点,此方法简单但效率低,它需要根据key的个数来花费对应遍历的网络时间,即N个key就需要N个网络时间。
b、串行IO

这个意思就是客户端会缓存redis节点和槽的信息,然后再客户端通过hashCRC16计算出key会再那个槽中,将key先再客户端就行分组,然后再去pipeline给服务端,这样只需要nodes次网络时间
c、并行IO

这里是采用的是多线程的方式,分好组的数据异步的传送给redis服务器,这里需要分组个数的网络传输,但只需要一次网络时间,因为它是并行的异步请求。
d、hash_tag

这种方式就是通过hash_tag包装使每个key都落在一个节点上来实行一次mget的批量操作。
四种方法比较
