c向文件中插入数据_Redis从文件中批量插入数据
簡(jiǎn)介
在redis中,有時(shí)候需要批量執(zhí)行某些命令,但是在redis的redis-cli下,只能一條條的執(zhí)行指令,實(shí)在太麻煩了!
想到這,你是不是藍(lán)瘦香菇? 如果能將要執(zhí)行的指令一行行存儲(chǔ)到文件中,然后用一行命令將文件中的命令一次執(zhí)行完成,那肯定爽死了!
所以下面,我要帶你冒著手指懷孕的危險(xiǎn),讓你爽一把:
創(chuàng)建文件
首先創(chuàng)建一個(gè)txt文件,將要執(zhí)行的指令一行一行寫進(jìn)去,當(dāng)然,你也可以從其他文件拷貝進(jìn)來。
server$ vim d1.txt set myk12 v1zadd zset12 0 a 1 b 3 csadd sset12 e f g hhset myk22 v2hset myset12 k1 v1hmset myset22 k2 v2 k3 v3 k4 v4set myk32 v3轉(zhuǎn)碼
redis-cli中只支持dos格式的換行符 ,如果你在Linux下、Mac下或者Windows下創(chuàng)建的文件,最好都轉(zhuǎn)個(gè)碼。沒有轉(zhuǎn)碼的文件,執(zhí)行會(huì)失敗。
下面是轉(zhuǎn)碼指令, 只需要在命令后加入要轉(zhuǎn)碼的文件即可:
如果使用unix2dos這個(gè)命令進(jìn)行轉(zhuǎn)碼失敗,提示沒有這個(gè)命令,就需要進(jìn)行安裝,我在在mac下用brew install unix2dos 安裝的unix2dos轉(zhuǎn)碼工具
brew install unix2dos==> Auto-updated Homebrew!Updated 1 tap (homebrew/core).... 部分省略 ...==> Pouring dos2unix-7.3.4.sierra.bottle.tar.gz/usr/local/Cellar/dos2unix/7.3.4: 23 files, 344.3K如果是CentOS,使用yum install unix2dos安裝unix2dos轉(zhuǎn)碼工具。
yum install unix2dos已加載插件:fastestmirror, security... 部分省略 ...已安裝: unix2dos.x86_64 0:2.2-35.el6完畢!執(zhí)行導(dǎo)入
文件轉(zhuǎn)碼完成后,就可以導(dǎo)入,導(dǎo)入使用cat和redis-cli命令組合,一個(gè)用來讀取文件內(nèi)容,一個(gè)用來發(fā)送文件到redis執(zhí)行,如果要導(dǎo)入的文件和redis在同一臺(tái)服務(wù)器上,可以直接將本地文件中的指令導(dǎo)入redis執(zhí)行
server> cat d1.txt | redis-cli OK(integer) 3(integer) 4OK(integer) 1OKOK我們可以看到,你輸入多少條指令,就會(huì)有多少行返回記錄,并且告訴你它們的執(zhí)行結(jié)果,如果你導(dǎo)入的指令比較多,可以使用--pipe 這個(gè)參數(shù)來啟用pipe協(xié)議,它不僅僅能減少返回結(jié)果的輸出,還能更快的執(zhí)行指令。
server> cat d1.txt | redis-cli --pipeAll data transferred. Waiting for the last reply... Last reply received from server. errors: 0, replies: 7如果你要導(dǎo)入數(shù)據(jù)在遠(yuǎn)程主機(jī)上,而且端口也是自定義的,那么可以使用下面的方法將文件導(dǎo)入到遠(yuǎn)程服務(wù)器:
server> cat d1.txt | redis-cli -p 6380 -h 192.168.1.166 --pipeAll data transferred. Waiting for the last reply... Last reply received from server. errors: 0, replies: 7數(shù)據(jù)導(dǎo)入完成后,我們就應(yīng)該去redis看看是不是導(dǎo)入成功了:
server$ redis-cli -p 6380127.0.0.1:6380> get myk1"v1"127.0.0.1:6380> hgetall myset11) "k1"2) "v1"127.0.0.1:6380> hgetall myset21) "k2"2) "v2"3) "k3"4) "v3"5) "k4"6) "v4"是不是很爽,以后redis中有什么數(shù)據(jù)要處理,直接一行命令搞定!
總結(jié)
以上是生活随笔為你收集整理的c向文件中插入数据_Redis从文件中批量插入数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 儿歌多多怎么关闭推送广告
- 下一篇: 穿越火线枪战王者怎么改名