redis运维(十八)pipeline

一  pipeline 流水线

说明: 这里讲解的不是'jenkins'的'pipeline'流水线

这里'pipeline': 管道

redis为什么要提供pipeline功能   事务和pipeline

①  pipeline的理念

redis运维(十八)pipeline_第1张图片

redis运维(十八)pipeline_第2张图片

强调:单纯的pipeline跟'事务'没有关系

redis-cli  --pipe  --> 使用了'pipeline机制'

说明: '原生'的批量操作mget、mset是'原子'的,而pipeline是'非原子'的.

redis运维(十八)pipeline_第3张图片

②  python使用pipeline

redis运维(十八)pipeline_第4张图片

③  pipeleine性能体验

说明: 官方建议使用pipeline'使用redis连接池'

redis运维(十八)pipeline_第5张图片

说明:由于是在'本地'测试,差异性可能不大,但是如果'redis服务器在远程',效果会'更明显'

备注: 可能需要'-a'选项'密码'认证

 

④  pipeline + redis事务

说明: python操作'事务'需要借助'pipeline'

redis运维(十八)pipeline_第6张图片

⑤  最佳实践

pipeline不要太大,否则数据量太大,一方面网络I/O阻塞,另一方面增加客户端的等待时间,用户体验不好

建议:拆分pipeline成更小的pipeline.

⑥  pipeline应用场景

Pipeline 实现的原理是'队列',而队列的原理是'先进先出',这样就保证'数据的顺序性'

redis运维(十八)pipeline_第7张图片

⑦  pipeline和原生批量命令

⑧  pipeline与事务的对比

你可能感兴趣的:(redis,运维,pipeline)