Redis Shell

Redis 提供了 redis-cliredis-serverredis-benchmark 等 Shell 工具。它们虽然比较简单,但是麻雀虽小五脏俱全,有时可以很巧妙地解决一些问题。

redis-cli 详解

1、-r

-r(repeat)选项代表将命令执行多次,例如下面操作将会执行三次 ping 命令:

$ redis-cli -r 3 ping
PONG
PONG
PONG
PONG
2、-i

-i(interval)选项代表每隔几秒执行一次命令,但是 -i 选项必须和 -r 选项一起使用,下面的操作会每隔 1 秒执行一次 ping,一共执行 5 次:

$ redis-cli -r 5 -i 1 ping
PONG
PONG
PONG
PONG
PONG

注意 -i 的单位是秒,不支持毫秒为单位,但是如果想以每隔 10 毫秒执行一次,可以用 -i 0.01,例如:

$ redis-cli -r 5 -i 0.01ping
PONG
PONG
PONG
PONG
PONG

例如下面的操作利用 -r 和 -i 选项,每隔 1 秒输出内存的使用量,一共输出 100 次

$ redis-cli -r 100 -i 1 info |grep used_memory_human
used_memory_human:793.10K
used_memory_human:793.10K
used_memory_human:793.10K
··········································
used_memory_human:793.10K

3、-x

-x 选项代表从标准输入(stdin)读取数据作为 redis-cli 的最后一个参数例如下面的操作会将字符串 world 作为 set hello 的值:

$ echo "world"  |  redis-cli  -x  set  hello
OK
4、-c

-c(cluster)选项是连接 Redis Cluster 节点时需要使用的,-c 选项可以防止 moved 和 ask 异常。

5、-a

如果 Redis 配置了密码,可以用 -a(auth)选项,有了这个选项就不需要手动输入 auth 命令。

6、--scan 和 --pattern

--scan 选项和 --pattern 选项用于扫描指定模式的键,相当于使用 scan 命令。

7、--slave

--slave 选项是把当前客户端模拟成当前 Redis 节点的从节点,可以用来获取当前 Redis 节点的更新操作,合理的利用这个选项可以记录当前连接 Redis 节点的一些更新操作,这些更新操作很可能是实际开发业务时需要的数据。

下面开启第一个客户端,使用 --slave 选项,看到同步已完成:

$ redis-cli --slave
SYNC with master, discarding 95 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"

在开启另一个客户端做一些更新操作:

$ redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> set a b 
OK
127.0.0.1:6379> incr count 
(integer) 1
127.0.0.1:6379> get hello
"world"

再开启另一个客户端做一些更新操作

$ redis-cli 
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> incr count 
(integer) 1
127.0.0.1:6379> get hello
"world"

第一个客户端会收到 Redis 节点的更新操作:

$ redis-cli --slave
SYNC with master, discarding 95 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"
"PING"
"PING"
"PING"
"SELECT","0"
"set","hello","world"
"incr","count"

注意:PING 命令是由于主从复制产生的。

8、--rdb

--rdb 选项会请求 Redis 实例生成并发送 RDB 持久化文件,保存在本地。可使用它做持久化文件的定期备份。

9、--pipe

--pipe 选项用于将命令封装成 Redis 通信协议定义的数据格式,批量发送给 Redis 执行。

10、--bigkeys

--bigkeys 选项使用 scan 命令对 Redis 的键进行采样,从中找到内存占用比较大的键值,这些键可能是系统的瓶颈。

11、--eva

--eval 选项用于执行指定 Lua 脚本。

12、--latency

latency 有三个选项,分别是 --latency、--latency-history、--latency-dist。它们都可以检测网络延迟,对于 Redis 的开发和运维非常有帮助。

13、--stat

--stat 选项可以实时获取 Redis 的重要统计信息,虽然 info 命令中的统计信息更全,但是能实时看到一些增量的数据(例如 requests)对于 Redis 的运维还是有一定帮助。
如下所示:

$ redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys       mem      clients blocked requests            connections          
2          1.79M    2       0       1922200 (+0)        22          
2          1.79M    2       0       1922201 (+1)        22          
2          1.79M    2       0       1922202 (+1)        22          
2          1.79M    2       0       1922203 (+1)        22          
14、--raw 和 --no-raw

--no-raw 选项是要求命令的返回结果必须是原始的格式,--raw 恰恰相反,返回格式化后的结果。
在 Redis 中设置一个中文的 value:

$ redis-cli set hello "你好"
OK

如果正常执行 get 或者使用 --no-raw 选项,那么返回的结果是二进制格式:

$ redis-cli get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"

$ redis-cli --no-raw get hello
"\xe4\xbd\xa0\xe5\xa5\xbd"

如果使用了 --raw 选项,将会返回中文:

$ redis-cli --raw get hello 
你好
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容