Redis-Shell
来源:互联网 发布:手机如何设置网络共享 编辑:程序博客网 时间:2024/06/03 10:59
Redis Shell
一. redis-cli
1.1 查看redis-cli命令帮助 redis-cli help
查看redis-cli命令帮助
[devuser@iz2ze2ehfvske0t6zflgupz ~]$redis-cli help
redis-cli 3.2.4
To get help about Redis commands type:
"help @<group>" to get a list of commands in<group>
"help <command>" for help on <command>
"help <tab>" to get a list of possible help topics
"quit" to exit
To set redis-cli perferences:
":set hints" enable online hints
":set nohints" disable online hints
Set your preferences in ~/.redisclirc
1.2按指定的次数重复执行命令redis-cli –r count commond
命令:redis-cli –r count commond
例如:redis-cli -h 10.3.34.101 -p6378 -r 3 ping
返回:PONG
PONG
PONG
1.3 几秒钟执行一次命令 redis-cli –i seconds command
命令:redis-cli –i seconds command
例如:redis-cli -h 10.3.34.101 -p6378 -r 3 -i 2 ping
两秒钟后返回: pong
例如:每秒返回一次内存的使用量,5次
执行命令:redis-cli -h 10.3.34.101 -p6378 -r 5 -i 1 info|grep used_memory_human
返回:used_memory_human:844.02K
used_memory_human:844.02K
used_memory_human:844.02K
used_memory_human:844.02K
used_memory_human:844.02K
1.4 从标准输入读取数据做为redis-cli的最后一个参数 echo ‘’ | redis-cli –x command
命令:echo ‘’ | redis-cli –x command
例如:echo "hello world"|redis-cli -h 10.3.34.101 -p 6379 -x setword
返回:ok
再次执行:redis-cli -h 10.3.34.101 -p 6379 get word
返回:"hello world\n"
1.5 redis-cli –c
1.6 redis-cli –a
1.7 redis-cli –scan和—pattern
1.8 模拟Redis从节点redis-cli –slave
--slave选项是把当前客户端模拟成当前Redis节点的从节点,可用用来获取当前redis服务节点的更新操作。
命令:redis-cli --slave
例如:
打开客户端client1
执行如下命令redis-cli -h 10.3.34.101 -p 6379 –slave
返回:SYNC with master, discarding 12248 bytes of bulk transfer...
SYNC done. Logging commands from master.
间隔一段时间:客户端执行ping,如下:
SYNC with master, discarding 12248 bytes ofbulk transfer...
SYNC done. Logging commands from master.
ping
此时打开另一个客户端client2,连接到redis服务器,
执行命令: set a a1
返回:ok
此时,在客户端client1处可以看到如下信息:
SYNC with master, discarding 12242 bytes ofbulk transfer...
SYNC done. Logging commands from master.
"PING"
"PING"
"PING"
"PING"
"PING"
"PING"
"SELECT","0"
"set","a","a1"
由上可知,在redis服务器上执行了set a a1命令。
1.9 redis-cli –rdb
1.10 redis-cli --pipe
将需要批量执行的命令放到一个文件中,通过redis-cli --pipe执行。
例如:
cat command1.txt|redis-cli -h 10.3.34.101-p 6378 --pipe
1.11 找到内存占用较大的键值redis-cli –bigkeys
--bigkeys命令采用scan命令对Redis进行采样,找到内存占用较大的键值。
命令:redis-cli –bigkeys
例如:redis-cli -h 10.3.34.101 -p 6379 –bigkey
返回:
# Scanning the entire keyspace to findbiggest keys as well as
# average sizes per key type. You can use -i 0.1 to sleep 0.1 sec
# per 100 SCAN commands (not usuallyneeded).
[00.00%] Biggest string found so far'token_seed' with 88 bytes
[00.00%] Biggest string found so far'tenantAuthAppMapportaltenantU001' with 5056 bytes
[00.00%] Biggest hash found so far'IUAP_SESSION_USER:b540903b584144d38a365a1fc593ee68' with 6 fields
[00.00%] Biggest hash found so far 'ONLINE_SESSIONS_MAP' with 28fields
-------- summary -------
Sampled 13 keys in the keyspace!
Total key length in bytes is 406 (avg len31.23)
Biggest string found'tenantAuthAppMapportaltenantU001' has 5056 bytes
Biggest hash found 'ONLINE_SESSIONS_MAP' has 28 fields
10 strings with 9691 bytes (76.92% of keys,avg size 969.10)
0 lists with 0 items (00.00% of keys, avgsize 0.00)
0 sets with 0 members (00.00% of keys, avgsize 0.00)
3 hashs with 35 fields (23.08% of keys, avgsize 11.67)
0 zsets with 0 members (00.00% of keys, avgsize 0.00)
1.12 redis-cli –eval
1.13 检测网络延迟redis-cli –latency
Latency有三个选型,分别是—latency,--latency-history、--latency-dist
(1) redis-cli --latency
例如:redis-cli -h10.3.34.101 -p 6379 –latency
返回:min: 0,max: 1, avg: 0.08 (8574 samples)
(2) redis-cli --latency-history
--latency的执行结果只有一条,–latency-history分时段了解延迟信息,每15秒输出一次
例如:redis-cli-h 10.3.34.101 -p 6379 –latency-history
返回:min: 0,max: 1, avg: 0.09 (1476 samples) -- 15.01 seconds range
min: 0, max: 1,avg: 0.08 (1475 samples) -- 15.00 seconds range
min: 0, max: 1,avg: 0.07 (1475 samples) -- 15.00 seconds range
min: 0, max: 2,avg: 0.09 (1475 samples) -- 15.01 seconds range
min: 0, max: 2,avg: 0.09 (1474 samples) -- 15.00 seconds range
(3) redis-cli –latency-dist
–latency-dist会使用统计图标的形式从控制台输出延迟统计信息
例如:redis-cli -h 10.3.34.101 -p 6379 –latency-dist
返回:
---------------------------------------------
. - * # .01 .125 .25.5 milliseconds
1,2,3,...,9 from 1 to9 milliseconds
A,B,C,D,E 10,20,30,40,50 milliseconds
F,G,H,I,J .1,.2,.3,.4,.5 seconds
K,L,M,N,O,P,Q,? 1,2,4,8,16,30,60,>60 seconds
From 0 to 100%:
1.14 实时获取redis重要统计信息 redis-cli –stat
命令:redis-cli –stat
例如:redis-cli -h 10.3.34.101 -p 6379 --stat
------- data ------ ---------------------load -------------------- - child -
keys mem clients blockedrequests connections
13 1.84M 3 0 40938 (+0) 312
13 1.84M 3 0 40939 (+1) 312
13 1.84M 3 0 40940 (+1) 312
13 1.84M 3 0 40941 (+1) 312
13 1.84M 3 0 40942 (+1) 312
13 1.84M 3 0 40943 (+1) 312
13 1.84M 3 0 40944 (+1) 312
13 1.84M 3 0 40945 (+1) 312
13 1.84M 3 0 40946 (+1) 312
1.15 命令的返回结果是否原始格式 –raw 和 --noraw
(1)--no-raw 或者正常的get命令,返回的结果必须是原始格式
命令: redis-cli –no-raw 命令
例如:redis-cli -h 10.3.34.101 -p 6379 set a 您好
redis-cli -h 10.3.34.101 -p 6379 --raw get a
返回:"\xe6\x82\xa8\xe5\xa5\xbd"
(1)--raw 或者正常的get命令,返回的结果不是原始格式
命令: redis-cli –raw 命令
例如:redis-cli -h 10.3.34.101 -p 6379 set a 您好
redis-cli -h 10.3.34.101 -p 6379 --raw get a
返回:您好
二. redis-server
Redis-server用于启动Redis服务器。可以按照如下三种方式:
2.1 默认配置启动
执行redis-server命令,按照默认的redis.conf配置文件中的配置启动Redis,如下:
因为默认配置无法自定义配置。所以该方式不会再生产环境中使用
2.2 运行配置启动
在命令redis-server后加上要修改的配置名和值(可以设置多对),没有设置的将使用默认配置。
如:redis-server --port 6389 –timeout 3000
虽然可以自定义配置。但是如果修改的配置较多则应该保存在配置文件中,不建议使用这种方式。
2.3 配置文件启动
将配置文件写到指定的redis.conf文件里,启动时在redis-server命令后,指定配置文件的路径,则redis会按照配置文件redis.conf的配置进行启动。例如:redis-server redis.conf
2.4 内存检测
redis-server除了启动redis外,还有一个-test-memory选项,该命令可以用来监测当前操作系统是否能够稳定分配指定容量的内存给redis,通过这种监测可以有效避免因为内存问题造成redis崩溃。
命令:redis-server–test-memory 1024
返回:执行时间较长,当输出passedthis test时说明内存检测完毕。
三. redis-benchmark
redis-benchmark可以为Redis做基准性能测试,它提供了很多选项帮助开发人员测试和运维人员测试redis的相关性能。
3.1 命令详解
命令:redis-benchmark [-c 并发数] [-n 总请求数] [–q][-r count]
选项:-c 代表客户端的并发数量(默认是50)
-n 代表客户端请求总量(默认值是100000)
-q 仅仅显示requests per second信息
-r 在一个空的Redis上执行了redis-benchmark会发现只有3个键(counter:__rand_int__,mylist,key:__rand_int__),-r可以向redis中插入更多随机键,会在key、counter键上加一个12位的后缀,-r不是随机数的个数,-r 10000是指只对后四位做随机处理)
-P 是否采用pipeline模式请求 (默认为1,不启用)
-k 客户端是否使用keepalive 1为使用,0为不使用,默认值为1(默认采用).
-t 可以对指定命令进行基准测试
--csv 将结果按照csv格式输出
例如:
3.1.1 模拟100客户端的1000000次请求
命令:redis-benchmark -h 10.3.34.101 -p 6379 -c 100 -n 100000
返回:
====== MSET (10 keys) ======
100000 requests completed in 1.01 seconds
100parallel clients
3bytes payload
keep alive: 1
77.80% <= 1 milliseconds
99.90% <= 2 milliseconds
100.00% <= 2 milliseconds
99304.87 requests per second
例如上面一共执行了100000次mset操作,在1.01秒内完成,100个客户端,每个请求的数据量是3字节,77.80%的命令执行时间小于1毫秒,redis每秒可以处理99304.87次mset请求。
3.1.2 模拟100客户端的1000000次请求,仅仅显示requests persecond信息
命令:redis-benchmark -h 10.3.34.101 -p 6379 -c 100 -n 100000 –q
PING_INLINE: 116279.06 requests per second
PING_BULK: 116279.06 requests per second
SET: 117647.05 requests per second
GET: 112359.55 requests per second
INCR: 112359.55 requests per second
LPUSH: 111111.11 requests per second
RPUSH: 113636.37 requests per second
LPOP: 120481.93 requests per second
RPOP: 119047.62 requests per second
SADD: 117647.05 requests per second
SPOP: 113636.37 requests per second
LPUSH (needed to benchmark LRANGE): 116279.06 requests per second
LRANGE_100 (first 100 elements): 50000.00 requests per second
LRANGE_300 (first 300 elements): 20242.92 requests per second
LRANGE_500 (first 450 elements): 14556.04 requests per second
LRANGE_600 (first 600 elements): 11074.20 requests per second
MSET (10 keys): 103092.78 requests per second
3.1.3 模拟100客户端的1000000次请求,并生成随机键
redis-benchmark -h 10.3.34.101 -p 6379 -c100 -n 100000 –r 10000
16289) "counter:000000004391"
16290) "key:000000007747"
16291) "counter:000000006174
………………………….…
3.1.4 采用pipeline模式请求
命令redis-benchmark -h 10.3.34.101 -p 6378 -P -c 100 -n 10000
返回:
====== 100 -n 10000 ======
100000 requests completed in 0.85 seconds
50parallel clients
3bytes payload
keep alive: 1
100.00% <= 0 milliseconds
117508.81 requests per second
使用管道后,效率快了很多。
(4) 只对set,get命令进行测试 redis-benchmark -h10.3.34.101 -p 6378 -P -t get set
======get set ======
100000 requests completed in 0.85 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.95%<= 1 milliseconds
100.00%<= 1 milliseconds
118203.30 requests per second
3.1.5 将结果以csv格式输出
命令:redis-benchmark -h 10.3.34.101 -p 6378 -c 100 -n 10000 –csv
返回:
"PING_INLINE","114942.53"
"PING_BULK","111111.11"
"SET","100000.00"
"GET","111111.11"
"INCR","112359.55"
"LPUSH","116279.06"
"RPUSH","111111.11"
"LPOP","116279.06"
"RPOP","113636.37"
"SADD","117647.05"
"SPOP","116279.06"
"LPUSH (needed to benchmark LRANGE)","116279.06"
"LRANGE_100 (first 100 elements)","50761.42"
"LRANGE_300 (first 300 elements)","20040.08"
"LRANGE_500 (first 450 elements)","14409.22"
"LRANGE_600 (first 600 elements)","11350.74"
"MSET (10 keys)","101010.10"
- Redis-Shell
- Redis Shell
- redis shell 命令
- Shell-Check Redis
- redis shell启动脚本
- shell redis状态
- redis在shell中的使用
- SHELL编写redis启动脚本
- shell批量插入redis测试数据
- shell导出和导入redis
- shell导出和导入redis
- 在shell下批量管理redis数据
- redis和.net和shell的关联
- shell在centOS6.5中安装redis
- shell脚本如何运行redis命令
- 自动化搭建redis集群的shell脚本
- 一行shell查看redis 连接数分布
- shell 例程 —— 解决redis读取稳定性
- 京东2017幸运数
- 简单类(多对多练习)
- 文章标题
- UVA
- mysql常用基本命令的使用
- Redis-Shell
- 如何在修改问题时,不引入新的问题?
- Thread(线程的创建) 十八
- 大华技术股份笔试题重点总结
- Java中HashCode的作用
- 对象及变量的并发访问
- 2017-7-13-每日博客-几个有用的运维实例-1
- Java中的数据结构
- 暑假集训 第六天了