`
jahu
  • 浏览: 58119 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

(转)Redis从文件中批量执行命令

 
阅读更多

http://blog.csdn.net/u012689336/article/details/53332653

 

Redis中,如果要批量执行某些命令,在redis的redis-cli下,只能一条条的执行指令,实在太麻烦了! 

 

如果把要执行的命令一行行存储到文件中,然后一次性执行完成。

 

1、创建文件

 

首先创建一个txt文件,将要执行的指令一行一行写进去。

[sparkadmin@hadoop4 redis-3.2.4]$ vim d1.txt 
set mykey1 value1
zadd sortedsort 0 a 1 b 3 c
sadd sort mongodb mysql oracle
set mykey2 value2
hmset hash name "redis" description "redis basic commands for caching" likes 20

 

 

2、执行导入

 

导入使用cat 和redis-cli命令组合,一个用来读取文件内容,一个用来发送文件到redis执行,如果要导入的文件和redis在同一台服务器上,可以直接将本地文件中的指令导入redis执行

 

[sparkadmin@hadoop4 redis-3.2.4]$ cat d1.txt | redis-cli -a runoob
OK
(integer) 3
(integer) 3
OK
OK

 

 

 

我们可以看到,你输入多少条指令,就会有多少行返回记录,并且告诉你它们的执行结果,如果你导入的指令比较多,可以使用--pipe 这个参数来启用pipe协议,它不仅仅能减少返回结果的输出,还能更快的执行指令。

 

[sparkadmin@hadoop4 redis-3.2.4]$ cat d1.txt | redis-cli -a runoob --pipe
All data transferred. Waiting for the last reply...
ERR unknown command 'add'
ERR unknown command 'add'
ERR unknown command 'et'
ERR wrong number of arguments for MSET
Last reply received from server.
errors: 4, replies: 5

 

 

 

如果这个提示不知道的命令,这是因为redis-cli中只支持doc格式的换行符 \r\n ,如果你在Linux下、Mac下或者Windows下创建的文件,最好都转个码。没有转码的文件,执行会失败。 

 

[sparkadmin@hadoop4 redis-3.2.4]$ unix2dos d1.txt 
-bash: unix2dos: command not found

 

提示没有这个命令,就需要进行安装。

 

[sparkadmin@hadoop4 redis-3.2.4]$ sudo yum install unix2dos -y

 

 

 

再进行转码:

 

[sparkadmin@hadoop4 redis-3.2.4]$ unix2dos d1.txt             
unix2dos: converting file d1.txt to DOS format ...

 

[sparkadmin@hadoop4 redis-3.2.4]$ cat d1.txt | redis-cli -a runoob --pipe
All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 5

 

 

 

如果你要导入数据到远程机器上,那么可以使用下面的方法将文件导入到远程服务器:

 

[sparkadmin@hadoop4 redis-3.2.4]$ cat d1.txt | redis-cli -a runoob -p 6380 -h 192.168.1.100 --pipe

All data transferred. Waiting for the last reply...
Last reply received from server.
errors: 0, replies: 5

分享到:
评论

相关推荐

    RedisDesktopManager 2020.7

    redis windows 客户端最新版 RDM为您提供了一个易于使用的 GUI,可以访问您的 Redis 数据库并执行一些基本操作: ...从 RDB 文件中导入数据 - 您可以轻松地将大型 rdb 文件中的数据分到多个较小的 redis 服务器上

    RedisDesktopManager 2020.5

    redis windows 客户端最新版 RDM为您提供了一个易于使用的 GUI,可以访问您的 Redis 数据库并执行一些基本操作: ...从 RDB 文件中导入数据 - 您可以轻松地将大型 rdb 文件中的数据分到多个较小的 redis 服务器上

    Redis 用法

    数据快照的原理是将整个Redis中存的所有数据遍历一遍存到一个扩展名为rdb的数据文件中。通过SAVE命令可以调用这个过程。 SET name "John Doe" SAVE SET name "Sheldon Cooper" BGSAVE /home/dong1/redis-2.6.16/...

    从MySQL到Redis的简单数据库迁移方法

    从mysql搬一个大表到redis中,你会发现在提取、转换或是载入一行数据时...redis-cli命令行工具有一个批量插入模式,是专门为批量执行命令设计的。这第一步就是把Mysql查询的内容格式化成redis-cli可用的数据格式。here

    Java思维导图xmind文件+导出图片

    MongoDB聚合、索引及基本执行命令 MongoDB数据分片、转存及恢复策略 MyCat MySQL主从复制及读写分离实战 MySQL+keepalived实现双主高可用方案实践 MySQL高性能解决方案之分库分表 数据库中间件初始Mycat ...

    rdm-2020.6.0.0

    RDM为您提供了一个易于使用的 GUI,可以访问您的 Redis 数据库并执行一些基本...从 RDB 文件中导入数据 - 您可以轻松地将大型 rdb 文件中的数据分到多个较小的 redis 服务器上,或者只导入数据的子集 为多个键设置 TT

    rdm-2021.0.0.0

    RDM为您提供了一个易于使用的 GUI,可以访问您的 Redis 数据库并执行一些基本...从 RDB 文件中导入数据 - 您可以轻松地将大型 rdb 文件中的数据分到多个较小的 redis 服务器上,或者只导入数据的子集 为多个键设置 TT

    快捷运维,,项目基于shell、python,运维脚本工具库+源代码+文档说明

    - 脚本化后,可以结合一些自动化工具,批量部署,比如可以用ansible来批量执行脚本,就可以批量部署服务器业务。 - 这里面的脚本是运维经常使用的脚本,方便大家使用! ## 为什么要做快捷运维? - 相信大家都知道...

    内网综合扫描工具fscan的详细使用

    一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。...ssh命令执行 6.其他功能: 文件保存 usege 简单用法 fscan.exe -h 192.168.1.1/24 (默认使用全部模块) fscan.exe -h 192.168.1.1/16 (B段扫描) —————

    JAVA上百实例源码以及开源项目

     数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录  一个Java+ajax写...

    2021年最新java面试题--视频讲解(内部培训84个知识点超详细).rar

    Java面试题75:批量插入几百万条数据 Java面试题76:有没有使用过redis Java面试题77:redis的使用场景 Java面试题78:redis存储对象的方式 Java面试题79:redis数据淘汰机制 Java面试题80:java访问redis级redis...

    JAVA上百实例源码以及开源项目源代码

     数字证书:从文件中读取数字证书,生成文件输入流,输入文件为c:/mycert.cer,获取一个处理X.509证书的证书工厂…… Java+ajax写的登录实例 1个目标文件 内容索引:Java源码,初学实例,ajax,登录  一个Java+ajax写...

    python入门到高级全栈工程师培训 第3期 附课件代码

    09 基于tcp实现远程执行命令测试结果 10 粘包现象 11 粘包解决方法 第31章 01 上节课复习 02 socketserver实现并发 03 socketserver模块介绍 04 socketserver源码分析tcp版本 05 socketserver源码分析udp版 06 ftp...

    java开源包1

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包11

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包2

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包3

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包6

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

    java开源包5

    MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...

Global site tag (gtag.js) - Google Analytics