Redis管道
- 如何优化频繁命令往返所产生的性能 优化瓶颈
将批处理的命令一次打包发送到Redis服务执行,类似于Redis的原生批处理命令,mset 和 mget - 使用 redis-cli --pipe 命令批量执行命令
cat cmd.txt | redis-cli --pipe
- 管道与原生批量命令的对比
原生命令是在redis-cli 中执行,具备原子性,pipeline 是非原子性
原生批处理命令一次只能执行一种命令,pipeline支持批量执行不同命令
原生批命令是Redis服务端实现,pipeline是客户端+服务端共同实现
Redis发布订阅
- 定义
是一种消息通信模式,发送者发送消息,订阅者接收消息,可以实现进程间的消息传递,
subscribe channel
psubscribe pattern
publish channel
PUBSUB NUMPAT
unsubscribe channel
- 缺点
发布的消息在Redis中没有持久化,因此,必须先订阅,再等待消息发布,如果先发布了消息,那么由于没有订阅消息会直接丢失,消息只管发送,对于发布者而言,消息是既发即逝的,不管接收,没有ack确认机制。