当我们对需要对redis操作时,会建立一个连接,一条指令一个。如果要进行海量操作的话,这样就会对网络效能大打折扣,所以有了一个管道的概念:
管道就是将多条redis指令打包发送,用一次网络通讯,进行批量操作。
linux实操:
1、使用字符串方式读写
首先下载nc #yum install nc
发送多条指令#echo -e "set name laohei\nget name" | nc localhost 6379
*nc就是建立冷连接,在没有cli的情况下也能操作redis
*echo -e支持使用\n换行
2、使用文件读写
首先需要下载unix2dos #yum install unix2dos
下载这个的原因就是linux和windows读换行的格式不一样,在windows中使用\n在linux中使用\r\n两个本质的区别造成了文本之间不能正确读写,unix2dos能有效解决此问题。
发送文本指令:#cat d1.txt | redis-cli --pipe
发布订阅:
使用publish 订阅一个 消息
使用subscribe 发送一个消息
使用场景,聊天室,当用户发布消息之后,其他订阅消息的人都会收到通知。
如果想要查看历史聊天记录,则需要再定义一个redis
正在使用聊天室的人能看到当前订阅消息,用redis直接完成
然后redis发送一个消息到redis2,redis2使用sortedset给消息设置时间
redis再发送一个消息到service
service发送到kafka
kafka发送到db处理
处理后发送到数据库