副问题[/!--empirenews.page--]
我们每天都在行使 Redis 内置的呼吁行器材 redis-cli,久而久之觉得它就是一个简朴的交互式 Redis 数据布局手工操纵措施,可是它背后强盛的成果绝大大都同窗也许闻所未闻。本节我们一路来发掘这些鲜为人知的风趣用法。
执行单条呼吁
平常在会见 Redis 处事器,一样平常城市行使 redis-cli 进入交互模式,然后一问一答来读写处事器,这种环境下我们行使的是它的「交互模式」。尚有其它一种「直接模式」,通过将呼吁参数直接转达给 redis-cli 来执行指令并获取输出功效。
- $ redis-cli incrby foo 5
- (integer) 5
- $ redis-cli incrby foo 5
- (integer) 10
假如输出的内容较大,还可以将输出重定向到外部文件
- $ redis-cli info > info.txt
- $ wc -l info.txt
- 120 info.txt
上面的呼吁指向的处事器是默认处事器地点,假如想指向特定的处事器可以这样
- // -n 2 暗示行使第2个库,相等于 select 2
- $ redis-cli -h localhost -p 6379 -n 2 ping
- PONG
批量执行呼吁
在平常线上的开拓进程中,偶然辰我们免不了要手工造数据,然后导入 Redis。凡是我们会编写剧本措施来做这件事。不外尚有其它一种较量便捷的方法,那就是直接行使 redis-cli 来批量执行一系列指令。
- $ cat cmds.txt
- set foo1 bar1
- set foo2 bar2
- set foo3 bar3
- ......
- $ cat cmds.txt | redis-cli
- OK
- OK
- OK
- ...
上面的指令行使了 Unix 管道将 cat 指令的尺度输出毗连到 redis-cli 的尺度输入。着实还可以直接行使输入重定历来批量执行指令。
- $ redis-cli < cmds.txt
- OK
- OK
- OK
- ...
set 多行字符串
假如一个字符串有多行,你但愿将它传入 set 指令,redis-cli 要怎样做?可以行使 -x 选项,该选项会行使尺度输入的内容作为最后一个参数。
- $ cat str.txt
- Ernest Hemingway once wrote,
- "The world is a fine place and worth fighting for."
- I agree with the second part.
- $ redis-cli -x set foo < str.txt
- OK
- $ redis-cli get foo
- "Ernest Hemingway once wrote,n"The world is a fine place and worth fighting for."nI agree with the second part.n"
一再执行指令
redis-cli 还支持一再执行指令多次,每条指令执行之间配置一个隔断时刻,云云便可以调查某条指令的输出内容随时刻变革。
- // 隔断1s,执行5次,调查qps的变革
- $ redis-cli -r 5 -i 1 info | grep ops
- instantaneous_ops_per_sec:43469
- instantaneous_ops_per_sec:47460
- instantaneous_ops_per_sec:47699
- instantaneous_ops_per_sec:46434
- instantaneous_ops_per_sec:47216
假如将次数配置为 -1 那就是一再无数次永久执行下去。假如不提供 -i 参数,那就没有隔断,持续一再执行。在交互模式下也可以一再执行指令,情势上较量独特,在指令前面增进次数
- 127.0.0.1:6379> 5 ping
- PONG
- PONG
- PONG
- PONG
- PONG
- # 下面的指令很可骇,你的屏幕要恼怒了
- 127.0.0.1:6379> 10000 info
- .......
导出 csv
redis-cli 不能一次导出整个库的内容为 csv,可是可以导出单条指令的输出为 csv 名目。
- $ redis-cli rpush lfoo a b c d e f g
- (integer) 7
- $ redis-cli --csv lrange lfoo 0 -1
- "a","b","c","d","e","f","g"
- $ redis-cli hmset hfoo a 1 b 2 c 3 d 4
- OK
- $ redis-cli --csv hgetall hfoo
- "a","1","b","2","c","3","d","4"
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|