用Redis-benchmark测试Redis

目录

1、安装工具 

 2、开始测试

2.1 SET、GET等操作平均每秒请求数

2.2 验证数据完整性


在同一虚拟内网中创建云主机、Redis数据库实例各一个,运行状态正常

1、安装工具 

1.1、下载测试工具

wget http://download.redis.io/releases/redis-5.0.12.tar.gz

1.2、解压

tar -xvf redis-5.0.12.tar.gz

1.3、安装gcc

yum -y install gcc gcc-c++
cd redis-5.0.12
make
make install

 2、开始测试

 2.1 SET、GET等操作平均每秒请求数

redis-benchmark -h 10.173.150.201 -p 30098 -n 1000000

2.1.1 shell脚本运行

#/bin/bash
sudo rm -r ~/results/*
cd ~
for a in {1..30}
do
    redis-benchmark -h r-uf6qmv8md6gr7mh9hw.redis.rds.aliyuncs.com -p 6379 -n 1000000  --csv >> ./results/results.csv
	sleep 1
done

2.2 验证数据完整性

1)在数据库中存入10000 对KEY-VALUE

2)在云主机中部署测试脚本,每隔5分钟获取存入的KEY-VALUE,与原数据对比,判断是否一致

1、用python造一万条数据
2、插入一万条数据:cat redis_insert.txt | redis-cli -h host -p port -a password --pipe
3、在云服务器运行写好的脚本:sh select_redis.sh(不可关闭运行脚本的窗口)
4、写好的脚本(select_redis.sh):先查询所有的key值,存到key_db.txt,在filename.csv,写入表头"key,value",再把key_db.txt里的"key,value"查询出来,存到filename.csv。

 2.2.1 造数据脚本存入redis_insert.txt参考链接

1> 首先构造redis命令的文本文件

在这里,我选用了python

#!/usr/bin/python
for i in range(10000):
	print('set name'+str(i)+' helloworld')

# python 1.py > redis_commands.txt

# head -2 redis_commands.txt

set name0 helloworld
set name1 helloworld

2> 将这些命令转化成Redis Protocol

在这里,我利用了github上一个shell脚本,

#!/bin/bash

while read CMD; do
 # each command begins with *{number arguments in command}\r\n
 XS=($CMD); printf "*${#XS[@]}\r\n"
 # for each argument, we append ${length}\r\n{argument}\r\n
 for X in $CMD; do printf "\$${#X}\r\n$X\r\n"; done
done < redis_commands.txt

# sh 20.sh > redis_data.txt

# head -7 redis_data.txt

 *3
$3
set
$5
name0
$10
helloworld

 至此,数据构造完毕。

2.2.2 插入数据库

cat redis_insert.txt | redis-cli -h host -p port -a password --pipe

 2.2.3 写成shell脚本select_redis.sh

#!/bin/bash
for((i=1;i<290;i++));
do
filename='redis'`date +%Y-%m-%d_%H:%M`
work_path=$(dirname "$0")
echo "实例化redis数据文件为:$work_path/select_results/$filename"
echo "keys *" | redis-cli -h 10.173.150.201 -p 30098 -a Gmcc@1234 > key_db.txt
echo "将所有key保存到:$work_path/key_db.txt"
echo "key,value" >>$work_path/select_results/$filename.csv
for line in `cat key_db.txt`
do

echo "$line,`redis-cli -h 10.173.150.201 -p 30098 -a Gmcc@1234 get $line`">>$work_path/select_results/$filename.csv
done
sleep 5m
done

逻辑:先查询所有的key值,存到key_db.txt,在filename.csv,写入表头"key,value",再把key_db.txt里的"key,value"查询出来,存到filename.csv

 2.2.4运行shell脚本

sh select_redis.sh

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值