redis本身执行指令的性能非常的高,单台数十万并发不成问题,但是如果一个请求处理流程过长,需要频繁的操作redis,此时无论如何都无法提高系统的并发,归根结底还是网络带来的性能损耗过大,为了降低网络开销,redis支持piplines和lua脚本的方式进行批量处理和返回值,只需要一次网络请求就可以发送数百条操作指令。以下我将对着两种方式的应用场景进行详细的描述。
上图是piplines的命令执行流程,很遗憾的是,spring-data编程模式下的基于jedis连接池的redis cluster模式无法支持piplines方式,为了实现piplines方式,只能手动编写工具类,编写工具类流程大致如下:
其中只有在close piplined的时候才能拿到返回值,需要通过jedis的response对象去设置&