码字不易,转载请附原链,搬砖繁忙回复不及时见谅,技术交流请加QQ群:909211071
redis-cli
1、-r(repeat)选项代表将命令执行多次
$redis-cli -r 3 ping
PONG
PONG
PONG
2、-i(interval)选项代表每隔几秒执行一次命令,必须和-r选项同时使用
redis-cli -r 3 -i 1 info | grep used_memory_human
used_memory_human:1.00M
used_memory_human:1.00M
used_memory_human:1.00M
3、-x选项代表从标准输入读取数据作为redis-cli的最后一个参数
$echo "why" | redis-cli -x set hello
OK
$redis-cli get hello
"why\n"
4、-c(cluster)用于连接Redis Cluster节点时使用
5、-a(auth) 输入密码
6、--scan和--pattern用于扫描匹配的键,相当于scan命令
7、--slava,把当前客户端模拟成当前Redis节点的从节点,可以用来获取当前Redis节点的更新操作,用于模拟主从
$redis-cli --slave
SYNC with master, discarding 409 bytes of bulk transfer...
SYNC done. Logging commands from master.
"PING"
"SELECT","0"
"set","why","why"
"PING"
"del","why"
"PING"
"PING"
"PING"
$redis-cli
127.0.0.1:6379> set why why
OK
127.0.0.1:6379> del why
(integer) 1
127.0.0.1:6379>
8、--rdb选项会请求redis实例生成并保存RDB持久化文件到本地,可以用它做持久化文件的定期备份。
9、--bigkeys选项使用scan命令对Redis的key进行采样,从中找到内存占用比较大的键值,有可能造成系统瓶颈
11、--evel选项用于执行指定Lua脚本
12、--latency、--latency-history、--latency-dist都可用于检测当前机器连接到目标机器Redis的网络延迟,-h后为目标机器
$redis-cli -h 127.0.0.1 --latency-history -i 1
min: 0, max: 1, avg: 0.22 (88 samples) -- 1.01 seconds range
min: 0, max: 1, avg: 0.33 (87 samples) -- 1.01 seconds range
min: 0, max: 1, avg: 0.26 (87 samples) -- 1.01 seconds range
min: 0, max: 1, avg: 0.31 (87 samples) -- 1.01 seconds range
13、--stat选项可以实时获取Redis的重要信息
$redis-cli --stat
------- data ------ --------------------- load -------------------- - child -
keys mem clients blocked requests connections
14 2.02M 2 0 2848 (+0) 17
14 2.02M 2 0 2849 (+1) 17
14 2.02M 2 0 2850 (+1) 17
14 2.02M 2 0 2851 (+1) 17
14、--raw要求命令返回格式化后的结果,如果不加参数,默认为--no-raw
$redis-cli get why
"\xe7\xa8\x8b\xe5\xba\x8f\xe7\x8c\xbf"
$redis-cli --raw get why
程序猿
redis-server
redis-server除了启动Redis外,还有一个--test-memary徐昂想,可以用来检测当前操作系统能否稳定地分配指定容量的内存给Redis,可以用来模拟内存条件做测试。
redis-benchmark
1、-c(clients)选项代表客户端的并发数量,默认为50
2、-n(num)选项代表客户端请求总量,默认为100000
$redis-benchmark -c 100 -n 20000 | grep -A 9 GET
====== GET ======
20000 requests completed in 0.17 seconds
100 parallel clients
3 bytes payload
keep alive: 1
99.51% <= 1 milliseconds
100.00% <= 1 milliseconds
116959.06 requests per second
上面为200个客户端同时用GET命令请求Redis,一共执行20000次,在0.17秒完成,每个请求数据量是3个字节,99.51%的命令执行时间小于1毫秒,Redis美妙可以处理116959.06次请求
3、-q选项仅仅显示requests per second信息
$redis-benchmark -c 100 -n 20000 -q
PING_INLINE: 81632.65 requests per second
PING_BULK: 76628.35 requests per second
SET: 76923.08 requests per second
GET: 116959.06 requests per second
INCR: 116959.06 requests per second
LPUSH: 112994.35 requests per second
RPUSH: 121951.22 requests per second
LPOP: 107526.88 requests per second
RPOP: 115606.94 requests per second
SADD: 112994.35 requests per second
HSET: 118343.20 requests per second
SPOP: 116279.06 requests per second
LPUSH (needed to benchmark LRANGE): 119047.62 requests per second
LRANGE_100 (first 100 elements): 29411.76 requests per second
LRANGE_300 (first 300 elements): 11897.68 requests per second
LRANGE_500 (first 450 elements): 8237.23 requests per second
LRANGE_600 (first 600 elements): 6343.17 requests per second
MSET (10 keys): 70422.53 requests per second
4、-r(random)选项,会向Redis插入更多随机的键
5、-P选项代表每个请求pipeline的数据量,默认为1
6、-k选项代表客户端是否使用keepalive,1为使用,0为不使用,默认为1
7、-t选项可以对指定命令进行测试
$redis-benchmark -c 100 -n 20000 -t get,set -q
SET: 75757.58 requests per second
GET: 68259.38 requests per second
8、--csv选项会将结果按照csv格式输出,便于后续处理
$redis-benchmark -c 100 -n 20000 -t get,set -q --csv >> redis.csv
vim redis.csv
1 "SET","80000.00"
2 "GET","80321.29"