試驗環境:
- centos7.6x64位,CentOS-7-x86_64-Minimal-1810.iso
百度網盤下載地址:https://pan.baidu.com/s/1ckjQS_DGuI-7GGvmvhLNKQ 提取碼: 6gfc
linux的安裝參照:centos7.6最小化安裝 - redis-5.0.5.tar.gz
官網下載地址:http://download.redis.io/releases/redis-5.0.5.tar.gz
百度網盤下載地址:https://pan.baidu.com/s/1ipnB043h5Tvk7cYGKxSr8g 提取碼: bdkh
參照:
一、管道說明
Redis是一種基於客戶端-服務端模型以及請求/響應協議的TCP服務。這意味着通常情況下一個請求會遵循以下步驟:
- 客戶端向服務端發送一個查詢請求,並監聽Socket返回,通常是以阻塞模式,等待服務端響應。
- 服務端處理命令,並將結果返回給客戶端。
Redis 管道技術可以在服務端未響應時,客戶端可以繼續向服務端發送請求,並最終一次性讀取所有服務端的響應。
二、在redis-cli環境下使用管道技術批量插入數據
- 首先,準備批量命令文件redis-pipe-test.txt
set name1 xiaoming1 set name2 xiaoming2 set name3 xiaoming3 set name4 xiaoming4 set name5 xiaoming5 set name6 xiaoming6 set name7 小明 set name 小紅
- 將redis-pipe-test.txt拷貝到redis的bin目錄下
- 啓動redis服務
- 執行命令cat redis-pipe-test.txt | ./redis-cli -h 192.168.0.100 -p 6500 --pipe
[root@localhost bin]# ./redis-cli -h 192.168.0.100 -p 6500
192.168.0.100:6500> keys *
(empty list or set)
192.168.0.100:6500> quit
[root@localhost bin]# cat redis-pipe-test.txt | ./redis-cli -h 192.168.0.100 -p 6500 --pipe
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 8
[root@localhost bin]# ./redis-cli -h 192.168.0.100 -p 6500
192.168.0.100:6500> keys *
1) "name6"
2) "name4"
3) "name2"
4) "name"
5) "name3"
6) "name5"
7) "name7"
8) "name1"
192.168.0.100:6500> get name1
"xiaoming1"
192.168.0.100:6500> get name
"\xe5\xb0\x8f\xe7\xba\xa2"
192.168.0.100:6500>