今天做的一个功能,需要将mysql中的数据,存入redis中去,使用了管道的命令,将需要存储的字段,拼接为redis命令的文件,然后,利用linux的管道命令,将数据存入redis中去。
cat redis_commend.txt | redis-cli -p 9600 --pipe
其中redis_commend.txt的文件格式如下:
HSET 100028_hash mobile 13366073835
HSET 100034_hash mobile 15300399710
HSET 100078_hash mobile 13366961590
HSET 100112_hash mobile 13370108622
HSET 100120_hash mobile 13521696647
HSET 100133_hash mobile 13311202661
HSET 100152_hash mobile 13366861638
然而,从window传到linux的文件,可以通过上述命令执行,但是,通过shell脚本生成的文件,却无法执行。
最后发现,是文件格式不正确。需要dos系统的文件格式,才能执行。
一共有两种方式:
方式一:
于是执行如下命令:
按住shift + 冒号键 ,然后输入 set ff ,后按enter ,查看文件格式。
更改文件类型,输入:set ff=dos ,按enter
退出编辑,再次查看:
造成的根本原因,是由于,linux下和window下的空格,编码/n 和/r/n不一致,造成的。
方式二:
或者使用命令行的方式
unix2dos redis_commend.txt
执行上述命令,即可将redis_commend.txt,有unix格式转为dos格式。