一,Pipline
1.1 为什么要优化批处理
单个命令的执行流程:

N 条命令依次执行流程:

N 条命令批量执行:

1.2 Pipeline介绍


Pipeline 的多个命令之间不具备原子性
二,集群下的批处理
如 MSET 或者 Pipeline 这样的批处理需要在一次请求中携带多条命令,而此时如果 Redis 是一个集群,那批处理命令的多个 key 必须落在同一个插槽中,否则就会执行失败。
解决办法:

hash_tag 就是 key 的有效部分,例如:name 那么 tag 就是根据 name 计算,{a}name 那么就是根据 a 来计算
这个就叫 hash_tag
我们StringRedisTemplate.opsForValue().multiSet(map)底层会采用第三种,并行 slot 方式实现的,类似的,获取也可以multiGet。