Redis的管道
客户端和Redis使用TCP协议连接。不论是客户端向Redis发送命令还是Redis向客户端返回命令的执行结果,都需要经过网络传输,这两部分的总耗时称为往返时延。在执行多个命令时每条命令都需要等待上一条命令执行完才能执行,即使命令不需要上一条命令的执行结果。
Redis的底层通信协议对管道(pipelining)提供了支持。通过管道可以一次性发送多条命令并在执行完后一次性将结果返回,当一组命令中每条命令都不依赖于之前命令的执行结果时就可以将这组命令一起通过管道发出。管道通过减少客户端与Redis的通信次数来实现降低往返时延累计值得目的。
脚本
Redis在2.6版推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行,脚本中可以调用大部分的Redis命令。使用脚本的好处如下:
1.减少网络开销;多个命令可以放到脚本中发送一个请求即可,减少网络往返时延。
2.原子操作;整个脚本将作为一个整体执行,中间不会被其他命令插入。
3.复用;脚本会永久存储在Redis中,其他客户端也可以复用。
Lua是一个高效的轻量级脚本语言。Lua在葡萄牙语种是“月亮”的意思,它的徽标形似卫星,寓意着Lua是一个“卫星语音”,能够方便的嵌入到其他语言中使用。