加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

Redis呼吁行器材风趣的有数用法

发布时间:2018-11-09 09:22:40 所属栏目:编程 来源:老钱
导读:我们每天都在行使 Redis 内置的呼吁行器材 redis-cli,久而久之觉得它就是一个简朴的交互式 Redis 数据布局手工操纵措施,可是它背后强盛的成果绝大大都同窗也许闻所未闻。本节我们一路来发掘这些鲜为人知的风趣用法。 执行单条呼吁 平常在会见 Redis 处事
副问题[/!--empirenews.page--]

我们每天都在行使 Redis 内置的呼吁行器材 redis-cli,久而久之觉得它就是一个简朴的交互式 Redis 数据布局手工操纵措施,可是它背后强盛的成果绝大大都同窗也许闻所未闻。本节我们一路来发掘这些鲜为人知的风趣用法。

执行单条呼吁

平常在会见 Redis 处事器,一样平常城市行使 redis-cli 进入交互模式,然后一问一答来读写处事器,这种环境下我们行使的是它的「交互模式」。尚有其它一种「直接模式」,通过将呼吁参数直接转达给 redis-cli 来执行指令并获取输出功效。

  1. $ redis-cli incrby foo 5 
  2. (integer) 5 
  3. $ redis-cli incrby foo 5 
  4. (integer) 10 

假如输出的内容较大,还可以将输出重定向到外部文件

  1. $ redis-cli info > info.txt 
  2. $ wc -l info.txt 
  3.      120 info.txt 

上面的呼吁指向的处事器是默认处事器地点,假如想指向特定的处事器可以这样

  1. // -n 2 暗示行使第2个库,相等于 select 2 
  2. $ redis-cli -h localhost -p 6379 -n 2 ping 
  3. PONG 

批量执行呼吁

在平常线上的开拓进程中,偶然辰我们免不了要手工造数据,然后导入 Redis。凡是我们会编写剧本措施来做这件事。不外尚有其它一种较量便捷的方法,那就是直接行使 redis-cli 来批量执行一系列指令。

  1. $ cat cmds.txt 
  2. set foo1 bar1 
  3. set foo2 bar2 
  4. set foo3 bar3 
  5. ...... 
  6. $ cat cmds.txt | redis-cli 
  7. OK 
  8. OK 
  9. OK 
  10. ... 

上面的指令行使了 Unix 管道将 cat 指令的尺度输出毗连到 redis-cli 的尺度输入。着实还可以直接行使输入重定历来批量执行指令。

  1. $ redis-cli < cmds.txt 
  2. OK 
  3. OK 
  4. OK 
  5. ... 

set 多行字符串

假如一个字符串有多行,你但愿将它传入 set 指令,redis-cli 要怎样做?可以行使 -x 选项,该选项会行使尺度输入的内容作为最后一个参数。

  1. $ cat str.txt 
  2. Ernest Hemingway once wrote, 
  3. "The world is a fine place and worth fighting for." 
  4. I agree with the second part. 
  5. $ redis-cli -x set foo < str.txt 
  6. OK 
  7. $ redis-cli get foo 
  8. "Ernest Hemingway once wrote,n"The world is a fine place and worth fighting for."nI agree with the second part.n" 

一再执行指令

redis-cli 还支持一再执行指令多次,每条指令执行之间配置一个隔断时刻,云云便可以调查某条指令的输出内容随时刻变革。

  1. // 隔断1s,执行5次,调查qps的变革 
  2. $ redis-cli -r 5 -i 1 info | grep ops 
  3. instantaneous_ops_per_sec:43469 
  4. instantaneous_ops_per_sec:47460 
  5. instantaneous_ops_per_sec:47699 
  6. instantaneous_ops_per_sec:46434 
  7. instantaneous_ops_per_sec:47216 

假如将次数配置为 -1 那就是一再无数次永久执行下去。假如不提供 -i 参数,那就没有隔断,持续一再执行。在交互模式下也可以一再执行指令,情势上较量独特,在指令前面增进次数

  1. 127.0.0.1:6379> 5 ping 
  2. PONG 
  3. PONG 
  4. PONG 
  5. PONG 
  6. PONG 
  7. # 下面的指令很可骇,你的屏幕要恼怒了 
  8. 127.0.0.1:6379> 10000 info 
  9. ....... 

导出 csv

redis-cli 不能一次导出整个库的内容为 csv,可是可以导出单条指令的输出为 csv 名目。

  1. $ redis-cli rpush lfoo a b c d e f g 
  2. (integer) 7 
  3. $ redis-cli --csv lrange lfoo 0 -1 
  4. "a","b","c","d","e","f","g" 
  5. $ redis-cli hmset hfoo a 1 b 2 c 3 d 4 
  6. OK 
  7. $ redis-cli --csv hgetall hfoo 
  8. "a","1","b","2","c","3","d","4" 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读