码字不易,转载请附原链,搬砖繁忙回复不及时见谅,技术交流请加QQ群:909211071
redis-cli
1、-r(repeat)选项代表将命令执行多次
$redis-cli -r 3 pingPONGPONGPONG
2、-i(interval)选项代表每隔几秒执行一次命令,必须和-r选项同时使用
redis-cli -r 3 -i 1 info | grep used_memory_humanused_memory_human:1.00Mused_memory_human:1.00Mused_memory_human:1.00M
3、-x选项代表从标准输入读取数据作为redis-cli的最后一个参数
$echo "why" | redis-cli -x set helloOK$redis-cli get hello"why\n"
4、-c(cluster)用于连接Redis Cluster节点时使用
5、-a(auth) 输入密码
6、--scan和--pattern用于扫描匹配的键,相当于scan命令
7、--slava,把当前客户端模拟成当前Redis节点的从节点,可以用来获取当前Redis节点的更新操作,用于模拟主从
$redis-cli --slaveSYNC 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 whyOK127.0.0.1:6379> del why(integer) 1127.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 1min: 0, max: 1, avg: 0.22 (88 samples) -- 1.01 seconds rangemin: 0, max: 1, avg: 0.33 (87 samples) -- 1.01 seconds rangemin: 0, max: 1, avg: 0.26 (87 samples) -- 1.01 seconds rangemin: 0, max: 1, avg: 0.31 (87 samples) -- 1.01 seconds range
13、--stat选项可以实时获取Redis的重要信息
$redis-cli --stat------- data ------ --------------------- load -------------------- - child -keys memclients blocked requests connections14 2.02M 2 0 2848 (+0) 1714 2.02M 2 0 2849 (+1) 1714 2.02M 2 0 2850 (+1) 1714 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 seconds100 parallel clients3 bytes payloadkeep alive: 199.51% <= 1 milliseconds100.00% <= 1 milliseconds116959.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 secondPING_BULK: 76628.35 requests per secondSET: 76923.08 requests per secondGET: 116959.06 requests per secondINCR: 116959.06 requests per secondLPUSH: 112994.35 requests per secondRPUSH: 121951.22 requests per secondLPOP: 107526.88 requests per secondRPOP: 115606.94 requests per secondSADD: 112994.35 requests per secondHSET: 118343.20 requests per secondSPOP: 116279.06 requests per secondLPUSH (needed to benchmark LRANGE): 119047.62 requests per secondLRANGE_100 (first 100 elements): 29411.76 requests per secondLRANGE_300 (first 300 elements): 11897.68 requests per secondLRANGE_500 (first 450 elements): 8237.23 requests per secondLRANGE_600 (first 600 elements): 6343.17 requests per secondMSET (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 -qSET: 75757.58 requests per secondGET: 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"