关于redis的批处理疑问

来源:4-13 高并发下的用户查询如何提速?

慕田峪604633

2024-03-13

老师,想请问下redis在集群模式下,还能使用MutiGet批处理吗?这里为何不选择使用管道呢,这两个有啥区别,老师能基于他们原理解答一下吗?

写回答

1回答

Danny_Idea

2024-03-15

  1. mget的性能压测情况下要比pipeline更好:https://medium.com/@jychen7/redis-get-pipeline-vs-mget-6e41aeaecef

  2. pipeline无法支持集群环境下使用

  3. pipeline一次会将一堆命令发送到server端,对redis的socket缓冲区占用体积要比mget大

  4. mget在集群环境下可以用,但是如果是用jedis底层的lettuce pool 默认实现的话,随着slot节点增加,底层是同步遍历多个node节点,性能较差。一般企业里面都会对集群下的mget做优化,例如修改lettuce pool的源码,做成多线程分组到不同slot取数据的操作。但是极端情况下还是可能会需要遍历所有的slot节点,这块得结合业务场景去权衡。

0
1
慕田峪604633
非常感谢!
2024-03-15
共1条回复

SpringCloudAlibaba高并发仿斗鱼直播平台实战

SpringCloudAlibaba高并发仿斗鱼直播平台实战

443 学习 · 361 问题

查看课程